我有一个使用模型@model.topics 的母版页,我创建了一个使用模型@model.ContactUsModel 的局部视图,并且我正在我的母版页中呈现该视图,但它出现了错误:模型项传入字典的类型为“Nop.Web.Models.Common.topics”,但该字典需要“Nop.Web.Models.ContactUsModel”类型的模型项。
我正在使用以下方法调用部分视图:
@Html.Partial("Contact")
任何建议或建议我在这里做错了什么
我有一个使用模型@model.topics 的母版页,我创建了一个使用模型@model.ContactUsModel 的局部视图,并且我正在我的母版页中呈现该视图,但它出现了错误:模型项传入字典的类型为“Nop.Web.Models.Common.topics”,但该字典需要“Nop.Web.Models.ContactUsModel”类型的模型项。
我正在使用以下方法调用部分视图:
@Html.Partial("Contact")
任何建议或建议我在这里做错了什么
尝试使用
@Html.Action("Contact")
该操作必须返回 aPartialView
才能正常工作。然后,您可以使用正确的模型对其进行渲染
public ActionResult Contact()
{
blabla, some code
return PartialView(myContactUsModelObject);
}
@Html.Partial()
呈现局部视图。
它不会调用控制器中的操作。
您仍然可以使用此方法提供模型,如下所示:@Html.Partial("Contact",someObject)
如果您不使用它提供模型,则默认情况下将提供页面模型
,这就是您的代码所发生的情况
@Html.Action()
调用控制器中的操作。
然后由行动决定给出任何类型的结果。
我希望这有帮助
部分只是渲染视图。Action 调用 Controller 并渲染 View。因此,如果您的视图需要控制器提供的任何代码(如 ViewBag),您需要调用 Action()。否则调用 View()。