说明
我的cshtml页面包含一个包含100多个字段的表单。我想使用ajax将该表单提交给mvc动作。
代码:
var LoadFilters = function (data) {
var formData;
if (!showAll) {
formData = $("#SearchForm").serializeArray();
}
var url = $.url("load-pp-transaction-filters") + "?buyerSk=" + data;
$.ajax({
type: "GET",
url: url,
contentType: 'application/json; charset=utf-8',
data: formData,
dataType: "html",
success: function (msg) {
$("#pp-transaction-filters").html(msg);
$("#pp-transaction-filters").css("display", "block");
},
error: function (e)
{
console.log(e.responseText)
}
});
}
我总是得到404.15错误,如何处理?
答案 0 :(得分:0)
首先检查您的网址是否正确,因为404错误是针对不匹配的网址。
其次,如果您要提交以下数据,则必须使用Post:
var model = {
Name :"Shyju",
Location:"Detroit",
Interests : ["Code","Coffee","Stackoverflow"]
};
$.ajax({
type: "POST",
data: JSON.stringify(model),
url: url,
contentType: "application/json"
}).done(function (res) {
$("#SomeDivToShowTheResult").html(res);
});
public class DashboardViewModel
{
public string Name {set;get;}
public string Location {set;get;}
public List<string> Interests {set;get;}
}
[HttpPost]
public PartialViewResult IndexPartial([FromBody] DashboardViewModel m)
{
return PartialView("_IndexPartial",m);
}
希望这会对你有所帮助。
答案 1 :(得分:0)
问题的根本原因是您使用GET
中的Ajax
来获取数据,但GET
方法的长度有限。
有两种方法可以做到:
一个。如果您使用的是IIS
,则可以设置requestLimits
的值,有关详情,请查看 Request Limits
湾将您的Ajax
方法从GET
更改为POST
var LoadFilters = function (data) {
var formData;
if (!showAll) {
formData = $("#SearchForm").serializeArray();
}
var url = $.url("load-pp-transaction-filters") + "?buyerSk=" + data;
$.ajax({
type: "POST",
url: url,
data: formData,
success: function (msg) {
$("#pp-transaction-filters").html(msg);
$("#pp-transaction-filters").css("display", "block");
},
error: function (e)
{
console.log(e.responseText)
}
});
}
通常POST
方法可以容纳更多参数,但是如果您的字段太多,它仍然无效,那么您还需要更改requestLimits