我一直在看这个错误很长一段时间,似乎无法弄清楚我可能做错了什么。
我有一个局部视图,如下所示:
<% Html.RenderPartial("~/Views/ForumPosts/ForumPostCreateForm.ascx", ViewData.Model); %>
部分视图的顶部如下所示:
<%@ Control Language="C#" AutoEventWireup="true" Inherits="System.Web.Mvc.ViewUserControl<xxxx.Web.Controllers.ForumThreadsController.ForumThreadFormViewModel>" %>
我收到的错误如下:
传递到字典中的模型项的类型为“xxx.Core.ForumThread”,但此字典需要类型为“xxx.Web.Controllers.ForumThreadsController + ForumThreadFormViewModel”的模型项。 < / p>
如果没有弄错,两者都会采用名为ForumThread的模型,但显然我一定错过了什么。
答案 0 :(得分:4)
您必须确保将模型传递到局部视图中的内容, 尝试将模型的新对象传递给局部视图
答案 1 :(得分:3)
如果没有错的话,两者都会接受 模型叫做ForumThread ......
根据您发布的代码,部分视图需要xxxx.Web.Controllers.ForumThreadsController.ForumThreadFormViewModel
。更改部分视图的顶部,或找到某种方法在ForumThreadFormViewModel
对象上传递ForumThread
。
另一种解决方案是使用RenderAction
允许操作生成您想要的ForumThreadFormViewModel
。
答案 2 :(得分:1)
请确保您的模型类型为xxxx.Web.Controllers.ForumThreadsController.ForumThreadFormViewModel
要检查这一点,请查看控制器中返回View的位置。 您放入方法的对象应为ForumThreadFormViewModel
类型