1

我有一个使用模型@model.topics 的母版页,我创建了一个使用模型@model.ContactUsModel 的局部视图,并且我正在我的母版页中呈现该视图,但它出现了错误:模型项传入字典的类型为“Nop.Web.Models.Common.topics”,但该字典需要“Nop.Web.Models.ContactUsModel”类型的模型项。

我正在使用以下方法调用部分视图:

 @Html.Partial("Contact")

任何建议或建议我在这里做错了什么

4

2 回答 2

2

尝试使用

@Html.Action("Contact")

该操作必须返回 aPartialView才能正常工作。然后,您可以使用正确的模型对其进行渲染

public ActionResult Contact()
{
   blabla, some code
   return PartialView(myContactUsModelObject);
}

@Html.Partial()呈现局部视图。
不会调用控制器中的操作。
您仍然可以使用此方法提供模型,如下所示:@Html.Partial("Contact",someObject)
如果您不使用它提供模型,则默认情况下将提供页面模型
,这就是您的代码所发生的情况

@Html.Action()调用控制器中的操作。
然后由行动决定给出任何类型的结果。

我希望这有帮助

于 2011-10-26T12:39:43.360 回答
2

部分只是渲染视图。Action 调用 Controller 并渲染 View。因此,如果您的视图需要控制器提供的任何代码(如 ViewBag),您需要调用 Action()。否则调用 View()。

于 2011-10-26T13:01:04.447 回答