将JSON绑定到模型MVC3

时间:2013-04-04 02:14:40

标签: jquery ajax json asp.net-mvc-3

这是非常令人沮丧的我已经查看了一些示例但我仍然无法在服务器上接收任何数据。我有以下JS

var checkoutModel = { };
$('form#card input').each(function () {
           var id = $(this).attr("id")
           var value = $(this).val();
           checkoutModel[id] = value;
});

                    $.ajax({
                        url: "/checkout",
                        type: 'post',
                        dataType: 'json',
                        data: JSON.stringify(checkoutModel),
                        contenttype: 'application/json; charset=utf-8',
                        error: function (xhr) {
                            alert("error: " + xhr);
                        },
                        success: function (data) {
                            alert(data);
                        }
                    });

CheckoutController的操作如下所示(其中/ checkout映射到Checkout / OrderInfo)

    [HttpPost]
    [Authorize]
    public virtual JsonResult OrderInfo(CheckoutModel checkoutModel)

但是在服务器上我的checkoutModel的属性总是为NULL。

我出错的任何想法?

由于

1 个答案:

答案 0 :(得分:0)

我使用下面这样的东西:

假设您的CheckoutModel具有类似

的Id和Value属性
public Int32 Id {get;set}
public string Value {get;set}

在你的ajax上

var checkoutModel = { };
checkoutModel.Id = 1234;
checkoutModel.Value = "This is a Value";

    $.ajax({
    type: "POST",
    url: "Your Controller URL",
    data: checkoutModel ,
    traditional: true,
    success: function (data) {
               alert(data);
    },
    error: function (xhr) {
     alert("error: " + xhr);
    },
    dataType: 'json'
});

然后你的控制器

public JsonResult OrderInfo(CheckoutModel checkoutModel)
{
// int id = checkoutModel.Id; result : 1234
// string value = checkoutModel.Value; result : "This is a Value"
}

最好的问候