访问Div Id放在_Layout MVC3中

时间:2011-03-17 11:42:29

标签: asp.net-mvc

我在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中做到这一点吗?

1 个答案:

答案 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;
   }
}