私はレストランで注文する食品を表すオブジェクトを持っています。このオブジェクトには修飾子グループ(辺、料理命令、ピザトッピングなど)のリストがあり、各リストには修飾語のリストがあります。リストの代替EditorForテンプレートの選択
特定の修飾子オプションは、同じデータ型であっても、異なる表示(たとえば、左/右/すべてを指定する必要があります)が必要です。
@ Html.EditorForを使用していて、必要に応じて別のEditorTemplateを指定しています。
/Views/Shared/EditorTemplatesでは、私はModifierSelection.cshtmlとToppingSelection.cshtmlを持っています。私は、次のビューでそれらを呼び出しています:
@model MyApp.ViewModels.ModifierSelectionList
<div class="menugroup">
<h3 class="menuname">@Model.ModifierListName: (Select @Model.MaximumSelections)</h3>
<div class="modcountvalidation">@Model.ValidationResults</div>
@Html.HiddenFor(model => Model.ModifierListId)
<table class="menu">
@if (Model.IsToppingsList)
{
@Html.EditorFor(model => Model.ModifierSelections, "ToppingSelection")
}
else
{
@Html.EditorFor(model => Model.ModifierSelections)
}
</table>
</div>
私が代わりにデフォルトの「ToppingSelection」EditorTemplateを必要とする項目を表示しようと、私は次のエラーを取得する:
のでSystem.InvalidOperationException was unhandled by user code
Message=The model item passed into the dictionary is of type 'System.Collections.Generic.List`1[MyApp.ViewModels.ModifierSelection]', but this dictionary requires a model item of type 'MyApp.ViewModels.ModifierSelection'.
Source=System.Web.Mvc
- 私はデータ型のEditorTemplatesのセットを持っています。私はアイテムのリストを表示するためにそれらを使用しようとしており、使用するアイテムを選択できる必要があります。
私は間違っていますか?
ありがとうございます!
間違っています - これは動作しません。これは正しく表示されますが、データはモデルのビューに戻されません。どうやら、EditorForで代替テンプレートを指定すると、リストタイプに対して反復処理は行われませんが、手動でリストを反復処理するとモデルが正しくリストアップされません。これを行う方法はありますか? – pcbliss