2

我对此完全感到困惑,因为我从未遇到过。我有一个名为“错误”的共享视图,它输出一条标准消息,后跟一条自定义消息:

@model System.Web.Mvc.HandleErrorInfo

@{
    ViewBag.Title = "Error";
}

<h2>
    Sorry, an error occurred while processing your request. @{ ViewData["ErrorMessage"].ToString(); }
</h2>

在控制器捕获块内,我将 ViewData 设置为自定义消息:

    catch (Exception ex)
    {
        ...
        ViewData["ErrorMessage"] = "This is my custom message";
        return View("Error");
    }

但是,加载视图时,ViewData 会显示我的键“ErrorMessage”,但从不输出字符串。

4

1 回答 1

3

您的表达式没有显示任何内容,因为您没有写出ViewData["ErrorMessage"]响应。

随着@{ ... }您创建一个剃刀代码块,它不会向输出写入任何内容,只是执行里面的代码。

要写入输出,您需要使用@符号:

<h2>
    Sorry, an error occurred while processing your request. @ViewData["ErrorMessage"]
</h2>

有关剃刀语法的更多信息。

于 2013-05-04T15:30:13.773 回答