私は午前中ずっと回避策を見つけようとしましたが(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
});
私は得る:
答えを見つけたいと思っています。cozapplication/jsonの方が便利です
編集
プロトコルをPOSTに変更すると、パラメーターを正しく渡すことができます。ここに新しい質問があります:なぜGETしないのですか?変換されたリクエストクエリ文字列がmvc3のニーズを満たしていませんか?
EDIT2
http://forums.asp.net/t/1766534.aspx/1
すべての問題はGETメソッドにあるようです。GETは複雑なパラメータを渡すべきではありませんか?uがrestFULのファンなら、それは非常に奇妙です