我的问题:当我将数据发布到mvc 3控制器时,我的控制器没有被调用。
我的代码:
public class Input
{
public int Id { get; set; }
public int VId { get; set; }
public int XId { get; set; }
public int YId { get; set; }
}
[HttpPost]
public JsonResult TestPost(Input input)
{
return Json(new { Success = true, Message = "anymessage" });
}
function TestPost() {
console.log("TestPost");
var obj = { "Id": 1, "VId": 1, "XId": 1, "YId": 2 };
var objStr = JSON.stringify({ input: obj });
console.log("objstr " + objStr);
$.ajax({
url: '/MyController/TestPost"',
type: "POST",
cache: false,
contentType: 'application/json; charset=utf-8',
dataType: 'json',
data: objStr,
error: function (jqXHR, textStatus, errorThrown) {
console.log("error");
},
beforeSend: function() {
console.log("b4 send");
},
success: function (data, textStatus, jqXHR) {
console.log("success" + JSON.stringify(data));
}
});
}
当我致电帖子时,我在控制台中获得以下内容
TestPost
objstr {“input”:{“Id”:1,“VId”:1,“XId”:1,“YId”:2}}
b4发送
successnull
而且,我的控制器中的断点没有被击中。成功数据为空。
但是如果我使用一些REST客户端(如Simple REST或Postman)使用相同的数据,我的控制器就会命中,我的断点就会被击中。 所以我的电话一定有问题。
答案 0 :(得分:0)
尝试使用
data:JSON.stringify(obj);
控制台有什么错误?使用
进行检查error: function (jqXHR, textStatus, errorThrown) {
console.log(jqXHR.responseText);
},