【问题标题】:MVC5 Partial View Error [duplicate]MVC5 部分视图错误 [重复]
【发布时间】:2016-05-12 16:18:00
【问题描述】:

我创建了一个局部视图来保存来自用户的电子邮件。 部分视图是页面位置在共享文件夹下。当局部视图呈现在视图文件夹下的任何视图中时,它工作正常。那是关于页面,联系页面等。 但是当我将部分视图放在 _Layout 页面的页脚中时,就会出现问题。部分视图正在接受电子邮件并保存数据,但是当它返回时会出错。

传入字典的模型项的类型为“System.Collections.Generic.List`1[Test.Models.FAQ]”,但此字典需要“Test.Models.Subscribes”类型的模型项。

我尝试使用渲染和局部视图

@{ Html.RenderPartial("_Sub"); } and @Html.Partial("_Sub")

我也尝试添加参数,但会得到同样的错误。

@{ Html.RenderPartial("_Sub",ViewData.Models.Subscribe); } and @Html.Partial("_Sub", model :Model)

这个局部视图不允许我渲染其他视图也给出相同的错误。 视图正在执行验证并将数据保存到数据库。

如何解决此错误。还是不能对模型使用局部视图?

【问题讨论】:

  • 检查这个问题:link
  • 局部视图显示创建自接受电子邮件。如何使用表单的视图数据?
  • 该消息是不言自明的。主视图中的模型是List<Test.Models.FAQ>,您将其传递给具有@model Test.Models.Subscribes 的局部模型。您需要将Subscribes 的实例传递给部分 - 例如@{ Html.RenderPartial("_Sub", new Subscribes()); }

标签: asp.net-mvc razor partial-views


【解决方案1】:

传入字典的模型项的类型为“System.Collections.Generic.List`1[Test.Models.FAQ]”,但此字典需要“Test.Models.Subscribes”类型的模型项。

您似乎将 2 个不同的模型传递到一个强类型视图中,当您将部分模型传递给布局时,它会从生成的视图中“遇到”另一个模型。 为了防止它尝试(例如):将您的模型包装到模型包装器中,或尝试使用元组,更多信息请查看Multiple models in a view

【讨论】:

  • 感谢您从局部视图中删除模型。它没有任何问题
  • 通过创建模型的新实例并传递实例将解决问题
猜你喜欢
  • 2016-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-29
  • 2017-09-02
  • 2011-09-06
  • 2011-01-28
  • 1970-01-01
相关资源
最近更新 更多