継承するエディター テンプレート (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 と名前を持つことになります。