我尝试制作部分视图,实际上它有效,但当我尝试将代码放入html时,我总是会遇到 Nullable 错误。 这项工作:
public PartialViewResult Notification()
{
ViewBag.Notification = db.Notification.ToList();
return PartialView("Notification");
}
@Html.Action("Notification", "Project");
但是当我试图这样做时:
public PartialViewResult Notification()
{
ViewBag.Notification = db.Notification.ToList();
return PartialView("Notification");
}
@Html.RenderPartial("Notification", "Project");
或
@Html.RenderPartial("Notification", "Project");
此类代码为我提供了 Nullable 错误
这是我的PartialView
@{
foreach (var item in ViewBag.Notification)
{
@item.Name
}
}
答案 0 :(得分:0)
如果你想使用@html.RenderPartail,那么这个ViewBag的东西将不起作用,因为这不会触及动作,你仍然要使用它然后你应该在@Html.RendrePartial本身传递一个模型对象。
答案 1 :(得分:0)
如果您想使用@Html.RenderPartial
,则不再需要通知操作。
当你使用@Html.Action
时,你必须处理流程,你将呈现什么样的视图,它将是什么样的模型以及其他...
当您致电@Html.RenderPartial
时,您要求使用微软代码来处理流程,它会这样做,它会像您使用@Html.Action
一样提供您想要的视图,您只需要填写parammeters。
我想你要呈现的这个局部视图是一个非打字的,好吧。
你应该这样做:
查看操作
public ActionResult PreviousAction()
{
ViewBag.Notification = db.Notification.ToList();
return View();
}
查看代码
@ {Html.RenderPartial( “通知”);}
您传递的参数通知,不再是动作名称,现在它是要求微软代码呈现的部分视图的名称。
部分查看代码
在局部视图中,您拥有当前的代码:
@{
foreach (var item in ViewBag.Notification)
{
@item
}
}