Javascript jQuery Ajax调用即使在Json.Stringify()之后也与控制器参数不匹配
有人能指出我做错了什么吗?我遵循了使用jQuery和$.ajax请求从视图调用MVC控制器的标准方法。我还将模型的名称与参数进行了匹配。 这是我的控制器,当调用ajax调用但在参数中获得空值时,它会被击中:Javascript jQuery Ajax调用即使在Json.Stringify()之后也与控制器参数不匹配,javascript,jquery,json,ajax,asp.net-mvc,Javascript,Jquery,Json,Ajax,Asp.net Mvc,有人能指出我做错了什么吗?我遵循了使用jQuery和$.ajax请求从视图调用MVC控制器的标准方法。我还将模型的名称与参数进行了匹配。 这是我的控制器,当调用ajax调用但在参数中获得空值时,它会被击中: [HttpPost, Route("GetUserSettingsTable")] public ActionResult GetUserSettingsTable(List<UserSettingsTable> userSettings) {
[HttpPost, Route("GetUserSettingsTable")]
public ActionResult GetUserSettingsTable(List<UserSettingsTable> userSettings)
{
return PartialView("_UserSettingsTable.cshtml", userSettings);
}
我无法找到不匹配的位置,因为当我调用控制器时,它的参数值变为null。非常感谢您的帮助。从数据中删除JSON.stringify()
$.ajax({
url: '@Url.Action("GetUserSettingsTable", "Admin")',
type: "POST",
data: userSettings,
success : function (result)
{
$('#userSettingsTable').html(result);
},
error: function (result)
{
alert(result);
}
});
如果您使用
JSON.stringify(..)
,那么您还需要包括contentType:'application/JSON'
我不知道为什么会发生这种情况,但在我的测试环境中,类型“POST”工作得很好。然而,在我的生产服务器上,它坏了——类型:“POST”不起作用。我还是很好奇为什么。但是试着输入“post”,也许对你有用。请解释问题所在,不要只是发布代码。如果你不解释这个问题,对提问的人没有什么帮助。
public class UserSettingsTable
{
public string UserName { get; set; }
public string UserCountry { get; set; }
public string UserSourceSystem { get; set; }
}
$.ajax({
url: '@Url.Action("GetUserSettingsTable", "Admin")',
type: "POST",
data: userSettings,
success : function (result)
{
$('#userSettingsTable').html(result);
},
error: function (result)
{
alert(result);
}
});