0

継承するエディター テンプレート (Views/Shared/EditorTemplates/HORDER.ascx) があります。

System.Web.Mvc.ViewUserControl<CCOK2.Models.HORDER>

私のビューモデルには、複数の HORDERS をレンダリングするために Html.EditorFor を使用する 1 対多の関係があります。

<%: Html.EditorFor(model => model.PEOPLE.HORDERS, new {fred="hello"})%>

最終的に私がやりたいことは、ドロップダウンリストのデータを渡すことですが、今のところ、文字列「hello」を渡そうとしています

HORDER.ascx に以下を埋め込むと

<%: ViewData.Count() %>

「0」出力が得られます。ビューデータを取得しようとしても失敗します。

ただし、単一のアイテムで EditorFor を使用すると、期待どおりに動作します。ビューモデルに FirstHorder を追加しました。set is as model.PEOPLE.HORDERS.First() then <%: Html.EditorFor(model => model.FirstOrder, new { fred="hello"})%> は期待どおりに hello を渡します。

では、EditorFor を 1 対多の関係で呼び出すときに、追加のデータを処理する方法はありますか?

編集:別の場所で、個々の HORDERS に対して ForEach ループで EditorFor を使用することが提案されています。これは機能します (つまり、追加のビューデータが正しく渡されます) が、望ましくない PEOPLE.HORDERS[n].field ではなく、EditorFor によってレンダリングされるすべてのコントロールが同じ ID と名前を持つことになります。

4

1 に答える 1

0

多くの混乱の後、これを行うことはできないようです: フレームワークのバグだと思います。回避策は、EditorFor 呼び出しの前にビューデータに挿入することです。

于 2010-07-22T10:06:35.023 に答える