gpt4 book ai didi

jquery - 如何使用 jquery Ajax 将两个数据模型从 View 传递到 Controller

转载 作者:行者123 更新时间:2023-12-01 05:33:45 27 4
gpt4 key购买 nike

我正在使用 MVC 开发 Web 应用程序。在一种情况下,我将使用 jquery ajax 方法从我的角度调用服务器端操作。我必须传递两个模型对象作为ajax的数据,但每次它传递空值。我提到Proper way to use AJAX Post in jquery to pass model from strongly typed MVC3 view解决了我的问题,但不满意。那么如何使用 jquery ajax 传递我的模型对象呢?

调用Action的Jquery代码

 $("#btnAddAjax").click(function(e){
e.preventDefault();


var usermodel = {
US_FirstName:$("#txtFirstName").val(),
US_LaststName:$("#txtFirstName").val()
};
var citydatemodel = {
date:$("#SignDate").val(),
city: $("#selectCity").val()
};


$.ajax({
url:'@Url.Action("AllLandLord")',
contentType:'application/json; charset=utf-8',

data: JSON.stringify({User: usermodel, testM: citydatemodel}),
UpdateTargetId: "dvLandLord3",
type:'POST',
success:function(data){
$("#dvLandLord3").html(data);
},
error:function(){
alert('Something Wrong !!!');
}
});
});

我有两个模型,为此我从 viewModel 调用它

    public class User_Master
{
[Required(ErrorMessage = "* Please Enter First Name For Tenant")]
public string TN_FirstName { get; set; }

[Required(ErrorMessage = "* Please Enter Last Name For Tenant")]
public string TN_LastName { get; set; }
}


public partial class CityDate
{
[Required(ErrorMessage = "* Please Select Your City.")]
public string PR_City { get; set; }

[Required(ErrorMessage = "* Please Select Date")]
public Nullable<System.DateTime> CM_AgreementSignDate { get; set; }
}

最后,我将使用 jquery ajax 调用以下操作(用于部分 View )。

[HttpPost]
public PartialViewResult AllLandLord(User_Master usermaster, CityDate citydate)
{
List<User_Master> allLandLord = new List<User_Master>();
if (ModelState.IsValid)
{
allLandLord = agreementnewBAL.AllLandLordUsers();
return PartialView("LoadLandLord", allLandLord);
}
else
{
return PartialView("LoadLandLord", allLandLord);
}
}

最佳答案

我整理了一个快速演示:

基本操作:

[HttpPost]
public ActionResult TestMethod(userModel User, testModel testM)
{
return View();
}

型号:

public class testModel
{
public string UserType { get; set; }
}

public class userModel
{
public string FirstName { get; set; }
public string LastName { get; set; }
}

我的javqa脚本:

 <script type="text/javascript">
$("#myButton").click(function () {
var usermodel = {
FirstName: 'testfn',
LastName: 'testln'
}

var testmodel = {
UserType: 'test'
}

$.ajax({
url: '@Url.Action("TestMethod")',
contentType: 'application/json; charset=utf-8',
data: JSON.stringify({User: usermodel, testM: testmodel}),
type: "POST",
success:function(data){
alert("success");
},
error: function(){
alert("error");
}
});
});
</script>

调用 JS 会导致我分配的数据正确传递给操作。

您应该能够更新我的 JS 代码以使其在您的项目中运行。

编辑:data: 你的ajax调用的组件需要与你的 Controller 相匹配

data: JSON.stringify({User: usermodel, testM: testmodel}),

从我的例子变成

data: JSON.stringify({usermaster: usermodel, citydata: citydatamodel}),

编辑2:

您还需要确保您的 js 模型与您的 MVC 模型相匹配:

var usermodel = {
US_FirstName:$("#txtFirstName").val(),
US_LaststName:$("#txtFirstName").val()
};
var citydatemodel = {
date:$("#SignDate").val(),
city: $("#selectCity").val()
};

这些与您的 MVC 模型不匹配。

var usermodel = {
TN_FirstName:$("#txtFirstName").val(),
TN_LaststName:$("#txtFirstName").val()
};
var citydatemodel = {
CM_AgreementSignData:$("#SignDate").val(),
PR_City: $("#selectCity").val()
};

关于jquery - 如何使用 jquery Ajax 将两个数据模型从 View 传递到 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35291713/

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