我在MVC3工作。我在_Layout.cshtml文件中创建了一个DIV,用于显示错误消息,我在视图文件夹中创建了一个C#类ErrorMessage。
_layout.cshtml文件中的DIV:
这是类ErrorMessage代码:
public static class ErrorMessage
{
public static void Show(string message)
{
ErrorMessageDiv.InnerText = message;
}
public static void Hide()
{
}
}
在ErrorMessage类中,它给出了错误
“ErrorMessageDiv不存在于 当前背景“
知道如何在MVC3中做到这一点吗?
答案 0 :(得分:2)
如何在_layout.cshtml中创建一段代码,使用特定键在TempData集合中查找错误消息。
然后在您的控制器中,如果发生错误,请将错误文本添加到TempData并将其呈现。
以下是一个例子:
在您的控制器中,检查一些错误并添加到TempData:
public ActionResult Index()
{
bool isError = true;
if (isError)
{
TempData["ErrorMessage"] = "There has been an error";
// Or if you want to use the ErrorMessage class
// ErrorMessage.ShowError("There has been an error");
}
return View();
}
然后在你的主_layout.cshtml模板
<body>
@if (TempData["ErrorMessage"] != null)
{
<div class="Error">
@TempData["ErrorMessage"]
</div>
}
@RenderBody()
TempData将在访问一次后从其自身中删除该值。
如果您仍希望使用ErrorMessage类,则更改为包装TempData。
public static class ErrorMessage
{
public static void ShowError(string message)
{
TempData["ErrorMessage"] = message;
}
}