[英]Trivial JQuery $.ajax Json Post to ASP.NET MVC2 controller: Cannot get Controller to see JSON (or anything)
我经历了数十个答案,以找出将数据从$ .ajax发布到MVC 2的Controller中的参数的技巧。 就我所知:
顺便说一句,如果您使用GET,此方法有效,但无法通过POST进行操作。 我该如何解决?
$(document).ready(function () {
$.ajax({
type: "POST",
url: "/Home/Get",
data: {value:'9/14/2010 12:00:00 AM'},
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result) {
alert(result.value);
}
});
});
这是我的MVC 2控制器:
public class strange
{
public string value { get; set; }
}
public JsonResult Get(strange o)
{
var b = new strange { value = "return" };
return Json(b, JsonRequestBehavior.AllowGet);
}
开机自检后,o的“值”为null。 将POST更改为GET,o的“值”为“ 9/14/2010 12:00:00 AM”。
如何使POST与$ .ajax一起使用?
从客户端返回JSON时,是否有人发布过使JSON与MVC2数据验证一起使用的指南? 我知道他们前段时间在MVC 2期货中有这种说法。
发送到ASP.NET MVC控制器的数据不应使用JSON编码 。 所以你应该删除行
contentType: "application/json; charset=utf-8",
从$.ajax
请求开始,您的程序将运行。
您需要将JSON传递给控制器,并且它正在寻找一个strange
对象,当前传递的只是一个名为value
的字符串,而您的data
应如下所示:
{ strange: { value:'9/14/2010 12:00:00 AM'} }
请注意,具有服务器所寻找的value
属性的对象不是多么strange
。 但是,它将期望它是一个字符串,因此只需使用JSON.stringify()
(如果其他浏览器(例如<IE8)需要,则使用JSON2 ):
data: JSON.stringify({ strange: { value:'9/14/2010 12:00:00 AM'} }),
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.