gpt4 book ai didi

jquery - 如何将jquery.post中的数据发送到使用ViewModel作为参数的mvc Controller ?

转载 作者:行者123 更新时间:2023-12-03 21:35:55 25 4
gpt4 key购买 nike

我正在使用 ASP.NET MVC 编写应用程序。我有带有操作的 Controller ,它使用一些 ViewModel 作为参数。如何使用 jquery post 将表单数据发送到该 mvc Controller 。

最佳答案

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

});

您的 ViewModel 属性名称和我们传递的参数应该相同。即:您的 View 模型应该有 2 个名为 FirstNameLastName 的属性,就像他的

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
}

或者,如果您的 View 是强类型化到 PersonViewModel,您可以简单地使用 jQuery serialize 方法将序列化表单发送到操作方法

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

});

编辑:根据评论

Serialize 也会处理 Child 属性。假设您有一个名为 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();
}
}

如果您从 View 中填充这些数据,您将在 HttpPost Action 方法中获取这些数据。

enter image description here

关于jquery - 如何将jquery.post中的数据发送到使用ViewModel作为参数的mvc Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10803292/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com