如何在jquery.post中发送数据到使用ViewModel作为参数的mvc控制器?

前端之家收集整理的这篇文章主要介绍了如何在jquery.post中发送数据到使用ViewModel作为参数的mvc控制器?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在用asp.net mvc编写应用程序。我有控制器的动作,它使用一些viewmodel作为参数。如何使用jQuery文件将表单数据发送到该mvc控制器。

解决方法

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

});

您的viewmodel我们传递的属性名称和参数应该相同。即:您的视图模型应该有两个名为FirstName和LastName的属性,如他的

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,您可以使用jQuery序列化方法将序列化表单发送到操作方法

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

});

编辑:根据评论

Serialize也将照顾Child属性。假设你有一个这样的职业称为职业

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

您的Personviewmodel具有类型为专业的属性

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

您将从HttpPost Action方法获取这些数据,如果从您的视图中填写这些数据。

猜你在找的jQuery相关文章