我整个早上都试图找到一种解决方法(浏览了 SO 中的每个相关帖子并自己做了几个实验),但失败了。
这是服务器代码:
控制器:
[HttpGet]
public JsonResult Test(Entity e)
{
return Json(new { success = true }, JsonRequestBehavior.AllowGet);
}
实体:
public class Entity
{
public string A { set; get; }
public string B { set; get; }
}
使用客户端代码:
var e = {
A: "1",
B: "2"
};
$.ajax({
url: "/Home/Test",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: JSON.stringify(e)
// data: e
});
我得到:
使用客户端代码:
var e = {
A: "1",
B: "2"
};
$.ajax({
url: "/Home/Test",
//contentType: "application/json; charset=utf-8",
dataType: "json",
//data: JSON.stringify(e)
data: e
});
我得到:
希望能找到答案,因为 application/json 更有用
编辑
当我将协议更改为POST时,可以正确传递参数。这是新问题:为什么不GET?因为转换后的请求查询字符串不符合 mvc3 的需要??
编辑2
http://forums.asp.net/t/1766534.aspx/1
似乎所有问题都在GET方法上。GET不应该传递复杂的参数??如果你是restFUL的粉丝,那就太奇怪了