路线是:
routes.MapRoute(
"Ajax", // Route name
"BizTalk/Services/{action}", // URL with parameters
new
{ // Parameter defaults
controller = "BizTalk"
}
);
我的控制器是:
public JsonResult AjaxTest(string s, int i, bool b)
{
return Json("S: " + s + "," + "I: " + i + "," + "B: " + b);
}
我的 jQuery 代码:
$(document).ready(function() {
$("#btn_test").click(function() {
var s = "test";
var i = 8;
var b = true;
$.ajax({
type: "POST", cache: false,
url: "/BizTalk/Services/AjaxTest",
data: { i: i, s: s, b: b },
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
}
});
});
});
This post http://web.archive.org/web/20111122170050/http://blogger.forgottenskies.com/?p=252解释了问题和可能的解决方案(类似于@Erv 的解释)。
如果您删除contentType: "application/json; charset=utf-8"
从你的电话到jQuery.ajax
将使用默认内容类型 (form-urlencoded) 以及您指定为数据参数的 json 数据 (data: { i: i, s: s, b: b }
)将被正确映射到你的操作参数......所以除非你真的想发送 json 数据,只需删除 contentType 就可以了......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)