将JSON传递给MVC控制器 - 返回始终为null

时间:2011-07-18 12:31:02

标签: jquery asp.net-mvc-2

我们在项目中使用MVC 2.

获取使用jquery / json

发送到控制器的对象的空值

请在我犯错的地方纠正我。

这是我的代码

将数据发布到控制器我写在JQuery下面

$(document).ready(function () {

        $("#frmContact").submit(function () {
                    x = '{"Name":"John","EmailAddress":"john@gmail.com"}';
                    $.ajax({
                        type: 'POST',
                        url: '/dashboard/gmail',
                        data: x,
                        contentType: "application/json; charset=utf-8",
                        dataType: "json"
                        });
             });
});

注意:我也尝试了JSON.stringify(x)数据。

在我写的控制器部分:

public class ContactDetail
{
    public string Name { get; set; }
    public string EmailAddress { get; set; }
}

[AcceptVerbs(HttpVerbs.Post)]
[ObjectFilter(Param = "contactDetail", RootType = typeof(ContactDetail))]
public ActionResult gmail(ContactDetail contactDetail)
{
    // for now i didn't wrote any code here
    return View();
}

contactDetail为空。

提前致谢

2 个答案:

答案 0 :(得分:0)

你有没有尝试过:

x = {"Name":"John","EmailAddress":"john@gmail.com"};

答案 1 :(得分:0)

MVC 2并未附带json值提供程序作为标准。看看这个Phil Haack blog来解释如何对它进行排序。