ViewModel をパラメータとして使用する mvc コントローラに jquery.post のデータを送信するにはどうすればよいでしょうか? 質問する

ViewModel をパラメータとして使用する mvc コントローラに jquery.post のデータを送信するにはどうすればよいでしょうか? 質問する

私は asp.net mvc を使用してアプリケーションを作成しています。アクションを持つコントローラーがあり、パラメーターとしていくつかの ViewModel を使用します。jQuery ポストを使用してフォーム データをその mvc コントローラーに送信する方法を教えてください。

ベストアンサー1

$.post("Yourcontroller/YourAction", { FirstName : $("#txtFirstName").val(), LastName : $("#txtLastName") } ,function(data){
  //do whatever with the response

});

ViewModelのプロパティ名と渡すパラメータは同じである必要があります。つまり、ビューモデルにはFirstNameLastName次のように2つのプロパティが必要です。

public class PersonViewModel
{
  public string FirstName { set;get;}
  public string LastName { set;get;}
  // other properties

}

そして、Postアクションメソッドは、次のタイプのパラメータを受け入れる必要があります。PersonViewModel

[HttpPost]
public ActionResult YourAction(PersonViewModel model)
{
  //Now check model.FirstName 
}

あるいは、ビューがPersonViewModelに強く型付けされている場合は、jQueryserializeメソッドを使用してシリアル化されたフォームをアクションメソッドに送信するだけです。

$.post("Yourcontroller/YourAction", $("#formId").serialize() ,function(data){
  //do whatever with the response

});

編集: コメント通り

SerializeChildプロパティも処理します。次のようなProfessionというクラスがあるとします。

public class Profession
{
    public string ProfessionName { set; get; }
}

そして、PersonViewModelには、型のプロパティがありますProfession

public class PersonViewModel
{
    //other properties
    public Profession Profession { set; get; }
    public PersonViewModel()
    {
        if (Profession == null)
            Profession = new Profession();
    }
}

ビューからデータを入力すると、HttpPost アクション メソッドでこれらのデータが取得されます。

ここに画像の説明を入力してください

おすすめ記事