ホームページ > バックエンド開発 > C++ > HttpPost 中に ASP.NET MVC 4 のビューにリストを効果的にバインドするにはどうすればよいですか?

HttpPost 中に ASP.NET MVC 4 のビューにリストを効果的にバインドするにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-27 21:03:13
オリジナル
938 人が閲覧しました

How Can I Effectively Bind a List to a View in ASP.NET MVC 4 During HttpPost?

MVC 4 のリストへのモデルのバインド

MVC 4 のビューに項目の IList をバインドしようとすると、問題が発生する可能性がありますHttpPost中。この課題に対処するには、次のパターンを検討してください:

ViewModel:

項目の IList を含む ViewModel を作成します:

public class MyViewModel
{
   public List<Person> Persons{get;set;}
}
ログイン後にコピー

View:

ビューで、IList を反復処理します。各プロパティのフォーム入力を生成します:

@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)         
}
ログイン後にコピー

Action:

アクション メソッドで、投稿された MyViewModel を処理します。 object:

[HttpPost]public ViewResult(MyViewModel vm)
{
...
}
ログイン後にコピー

考慮事項:

  • ビュー内の対応する入力を持つプロパティのみが HttpPost の値を持ちます。
  • MVC のモデルバインディングは連続する ID に対してのみ機能します。条件付きで項目を非表示にすると、データが正しくバインドされない可能性があります。
  • ID のギャップの問題を解決するには、次のソリューションの使用を検討してください:
@for( int i = 0; i < Model.Persons.Count(); ++i)
{
    @Html.Hidden($"Persons[{i}].PersonId", Model.Persons[i].PersonId)
    @Html.Editor($"Persons[{i}].FirstName", Model.Persons[i].FirstName) 
    @Html.Editor($"Persons[{i}].LastName", Model.Persons[i].LastName)           
}
ログイン後にコピー

以上がHttpPost 中に ASP.NET MVC 4 のビューにリストを効果的にバインドするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート