我正在尝试通过Viewbag将数据列表从控制器传递到部分视图,但出现错误
在提交表单后,通过HttPost从formcollection获取数据,并在操作完成后从其中返回主页,我在其中的“ loadmessage”方法中调用方法Page_Init,试图将列表返回到部分视图“ Header ”,但无法执行错误操作
家庭控制器 [HttpPost]
public ActionResult Login(FormCollection form)
{
return View("Home");
}
在Home.cshtml中 在控制器中调用方法page_init
$.get("/Home/Page_Init",null, function (data) {
alert(data);
});
家庭控制器
public ActionResult Page_Init()
{
loadMessages();
return view("Home");
}
public ActionResult loadMessages()
{
List<MessageModel> lstMessages = new List<MessageModel>();
List<MessageModel> lstInfoMessages = new List<MessageModel>();
lstInfoMessages = lstMessages.Where(msg => msg.MESSAGE_TYPE.Equals(CommonConstants.SAFETY_MESSAGE_INFO, StringComparison.InvariantCultureIgnoreCase)).ToList<MessageModel>();
if (lstInfoMessages.Count > 0)
{
ViewBag.lstInfoMessages = 1;
ViewBag.lstInfoMessages1 = lstInfoMessages;
return PartialView("Header", lstInfoMessages);
}
}
还尝试从主视图转到部分视图
@ViewBag.lstInfoMessages1
@if (ViewBag.lstInfoMessages == 1)
{
@Html.Partial("Header",ViewBag.lstInfoMessages1)
}
预计信息列表应转到部分视图并绑定 错误:未获得确切的语法该怎么办以及如何执行上面尝试的步骤抛出错误
答案 0 :(得分:1)
@Html.Partial
方法不接受动态值-因此我们需要将其强制转换为实际类型。
@model MessageModel //you need to give correct path of MessageModel
@ViewBag.lstInfoMessages1
@if (ViewBag.lstInfoMessages == 1)
{
@Html.Partial("Header", (List<MessageModel>)ViewBag.lstInfoMessages1)
}
在页眉部分视图中,您可以使用@Model