かみそりビュー内でグループ化して編集したいリストがあります。
POCO が次の場合:
public class FooBar {
public string GroupName {get;set;}
public string SomeValue {get;set;}
// etc.
}
ビュー内のモデル:
@model IEnumerable<FooBar>
Post アクションは次のようになります。
[HttpPost]
public ActionResult FooBarPost(IEnumerable<FooBar> model)
通常、リストを編集するには、ビューで次の構文を使用します。
@Html.EditorForModel()
これはうまく機能し、次のような素敵な小さな入力を作成します。
<input id="[0].SomeValue" />
そしてポストバックもバッチリ。
ここで、ビューをそれほど素晴らしいものに変更したい場合:
<fieldset>
<legend>Legendary</legend>
@foreach (var group in Model.GroupBy(x => x.GroupName))
{
<h3>@group.Key</h3>
@Html.EditorFor(x => group)
}
</fieldset>
次に、リストを投稿すると、リストが null として返されますか?
これを修正するためのトリックがあったことを覚えていますが、それが何であったか思い出せませんか?
ありがとう。
編集:
アクションに追加さ[Bind(Prefix="group")]
れ、入力値の 1 つだけが返されます。
生成された HTML が次のようになっていることに気付きました (すべて同じページ上にあります)。
グループ 1:
<input id="group_0__SomeValue" name="group[0].SomeValues" type="hidden" value="bla">
<input id="group_1__SomeValue" name="group[1].SomeValues" type="hidden" value="bla">
次のグループ:
<input id="group_0__SomeValue" name="group[0].SomeValues" type="hidden" value="bla">