【问题标题】:Trying To pass list of data in from controller to partial view in mvc试图将数据列表从控制器传递到mvc中的部分视图
【发布时间】:2019-07-02 03:52:35
【问题描述】:

我正在尝试通过 viewbag 将数据列表从控制器传递到部分视图,但出现错误

在通过 HttPost 从 formcollection 提交数据后在登录表单中,一旦操作完成,它就会从那里返回主页,我在“loadmessage”方法中调用方法 Page_Init,我试图将列表返回到部分视图“标题" 基于条件。但无法执行获取错误

家庭控制器 [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)
}  

期望信息列表应该去局部视图和绑定 错误:没有得到确切的语法做什么以及如何继续上面尝试的步骤抛出错误

【问题讨论】:

  • 在不知道错误消息的情况下,很难帮助但我猜,Page_Init 操作中缺少 return 语句(您可能会遇到构建错误)。
  • @sam 返回消息在那里,但是使用 viewbag 将数据列表发送到部分的最佳方法是什么。直接从控制器方法或通过视图。

标签: asp.net-mvc


【解决方案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)
}

在 Header Partial 视图中,您可以使用 @Model 检索列表

【讨论】:

  • 我已经按照你提到的那样尝试过,但它给出了错误“找不到类型或名称 sapce 'MessageModel'(你是否缺少使用指令或程序集引用)
  • @model MessageModel //你需要在 Home view 和 Header View 上给出 MessageModel 的正确路径
  • 你在哪里定义 MessageModel ?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多