我有只称为单线的局部视图Messages.ascx
,其是在位置~/Views/Shared/Messages.ascx
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<dynamic>" %>
<h2><%:ViewBag.MyMessage.ToString() %></h2>
局部视图的控制器如下
public ActionResult Messages()
{
ViewBag.MyMessage = "This is my Partial Message";
return PartialView();
}
我只需要在的index.asp页中添加此局部视图~/Views/Home/Index.aspx
。我添加了部分视图,如下所示
<%: Html.Partial("Messages") %>
但是,当我编译并运行时,我在浏览器中收到以下消息
无法对空引用执行运行时绑定
Line 1: <%@ Control Language="C#"> Inherits="System.Web.Mvc.ViewUserControl<dynamic>" %> Line 2: Line 3: <h2><%:ViewBag.MyMessage.ToString() %></h2>
请帮助我将局部视图添加到主视图中。
当你这样做
<%: Html.Partial("Messages") %>
的内容~/Views/Shared/Messages.ascx
将被渲染,但是下面的controller action方法将不会执行
public ActionResult Messages()
{
ViewBag.MyMessage = "This is my Partial Message";
return PartialView();
}
所以ViewBag.MyMessage
为null,由于这种语法,您得到了错误
<h2><%:ViewBag.MyMessage.ToString() %></h2>
您需要Html.Action
在视图中使用method执行控制器动作方法。由于controller类为MessagesController
,请更改此语法
<%: Html.Partial("Messages") %>
对此
<%: Html.Action("Messages", "Messages") %>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句