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

View に単一の NewMessageListViewData を渡していますがIEnumerable<T>、T が NewMessageListViewData である実装オブジェクトのみを受け入れるように厳密に型指定されています。たとえば、 aList<NewMessageListViewData>が機能します。

コメントで述べたように、ClubStarterKit.Web.Infrastructure.Forum.NewMessageListAction.Execute() の戻り値の型を調べることから始めます。または、このビューに NewMessageListViewData の単一のインスタンスのみを表示する場合は、それを反映するようにビューにモデルを設定します。

于 2012-06-22T17:13:02.443 に答える