【问题标题】:Passing correct model to partial view将正确的模型传递给局部视图
【发布时间】:2010-12-13 19:48:32
【问题描述】:

我已经查看此错误很长一段时间了,但似乎无法弄清楚我可能做错了什么。

我有一个像这样添加的局部视图:

        <% 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”类型的模型项。

如果我没记错的话,两者都采用了名为 ForumThread 的模型,但显然我一定错过了什么。

【问题讨论】:

    标签: c# .net model-view-controller partial-views


    【解决方案1】:

    您必须确保将模型传递到局部视图中的内容, 尝试将模型的新对象传递到局部视图中

    【讨论】:

      【解决方案2】:

      如果我没记错的话,两者都取 模型名为 ForumThread...

      根据您发布的代码,部分视图采用xxxx.Web.Controllers.ForumThreadsController.ForumThreadFormViewModel。要么更改局部视图的顶部,要么找到某种方法将 ForumThreadFormViewModel 传递给 ForumThread 对象。

      另一种解决方案是使用RenderAction 允许操作生成您想要的ForumThreadFormViewModel

      【讨论】:

        【解决方案3】:

        请确保您的模型是 xxxx.Web.Controllers.ForumThreadsController.ForumThreadFormViewModel 类型

        要检查这一点,请查看控制器中返回视图的点。 您放入方法中的对象应该是 ForumThreadFormViewModel 类型

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-02-01
          • 1970-01-01
          • 2014-02-05
          • 1970-01-01
          • 2014-06-28
          相关资源
          最近更新 更多