【发布时间】:2016-02-09 12:08:21
【问题描述】:
我正在使用 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 调用以下操作(用于局部视图)。
[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);
}
}
【问题讨论】:
-
可能是因为您在 ajax 调用中将内容类型设置为 html。您是否尝试过删除该行或指定 JSON?
-
如果我使用 contentType 到
JSON。它会弹出错误。 -
如果你删除那行呢?
-
当我删除那条线时,它没有通过任何东西,
null像往常一样。 -
找到了这个问题,看起来像你想要做的。 stackoverflow.com/questions/1545316/…
标签: jquery ajax model-view-controller ajaxform