繁体   English   中英

琐碎的JQuery $ .ajax Json发布到ASP.NET MVC2控制器:无法让Controller查看JSON(或其他任何内容)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM