0

执行应用程序后,我得到“传递到字典中的模型项的类型为‘ClubStarterKit.Web.ViewData.Forum.NewMessageListViewData’,但此字典需要‘System.Collections.Generic.IEnumerable`1 类型的模型项[ ClubStarterKit.Web.ViewData.Forum.NewMessageListViewData]'。

鉴于我有以下代码

    <%if ( User.Identity.IsAuthenticated) { %>

        <div class="fullwidth" id="message-add-block">
          <%using (Ajax.AsyncForm(Website.Shared.Views.DisplayTemplates.NewForumMessageList, new AsyncFormOptions(AsyncFormType.TargetUpdate, FormMethod.Post, "newMessages", targetUpdate: "messages", elementBlockId: "message-add-block", postRequestFunction: "afterMessageUpdate")))
          {%>
                <h3>Add New Message Final Test</h3>
                <br />
                <%: Html.Wysiwyg("message") %>
                <br />
               <%-- <input type="hidden" value="<%: Model.ThreadSlug %>" name="thread" />--%>
                <input type="hidden" value="-1" name="messageId" />
                <input type="submit" value="Add Message4 final" />
          <%}%>




          <br />
          <a id="newmessage" href="#">New message4 final</a>
        </div>

          <%}%>

在控制器中,代码是

 public virtual ActionResult Index()
    {
        ViewData.Title("New Message");
        return View(Views.List, new ClubStarterKit.Web.Infrastructure.Forum.NewMessageListAction().Execute());
    }

在下面的屏幕截图中是:

错误

传入字典的模型项的类型为“Myapplication.Web.ViewData.application.NewMessageListViewData”,但此字典需要类型为“System.Collections.Generic.IEnumerable”的模型项

请告知哪个代码区域是问题所在

4

1 回答 1

2

您正在向视图传递单个 NewMessageListViewData,但它已被强类型化为仅接受实现IEnumerable<T>T 为 NewMessageListViewData 的对象。例如, aList<NewMessageListViewData>会起作用。

正如评论中提到的,我将首先查看 ClubStarterKit.Web.Infrastructure.Forum.NewMessageListAction.Execute() 的返回类型,或者,如果您只打算在此视图中显示 NewMessageListViewData 的单个实例,则需要在视图中设置模型以反映这一点。

于 2012-06-22T17:13:02.443 回答