MVC 4 のリストのカスタム モデル バインディング
MVC のビューに項目のリスト (IList) をバインドすることは、一般的な課題でした開発者向け。古いソリューションも存在しますが、MVC 4 ではプロセスを簡素化する機能強化が導入されています。
リスト内の各項目にデータ入力用の独自のフォームが必要なシナリオの場合は、ViewModel を次のように構造化することを検討してください。
public class MyViewModel { public List<Person> Persons{get;set;} }
ビューの BeginForm 内:
@model MyViewModel @for( int i = 0; i < Model.Persons.Count(); ++i) { @Html.HiddenFor(m => m.Persons[i].PersonId) @Html.EditorFor(m => m.Persons[i].FirstName) @Html.EditorFor(m => m.Persons[i].LastName) }
HttpPost アクションは更新されたものを受け取りますビュー モデル:
[HttpPost]public ViewResult(MyViewModel vm) { ... }
ポストバックでは、フォーム内の対応する入力を持つプロパティのみが値を持つことに注意してください。これは、MVC のモデル バインディングが連続する ID を探し、ギャップが発生するとバインドを停止するためです。したがって、リスト内のすべての項目に有効な ID があり、フォームにギャップがないことを確認することが重要です。
以上がMVC 4 で項目のリストをビューに効率的にバインドするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。