难以将mvc模型绑定到JSON帖子

时间:2012-12-24 06:41:12

标签: c# json asp.net-mvc-4

我有以下JSON请求正文(从ie10管理面板网络捕获中复制)

{"FirstName":"James","LastName":"Jones","Email":"jJones@system.net"}

我的控制器如下(x变量要断开):

[HttpPost]
public void EditPerson(PersonUpdateViewModel person)
{
    int x = 0;
}

我的ViewModel如下:

public class PersonUpdateViewModel
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Email { get; set; }
}

到达了EditPerson Action,我打破了x变量,但是person变量中的所有属性都是null,是否有人对我可能做错了什么有任何提示?此时我甚至可以接受原始JSON字符串并从那里进行解析,但我无法在action方法中获取任何参数。

javascript函数我是按要求发布的:

var submitEdit2 = function () {
    var editables = $('.editable')
    var person = new Object();
    for (var i = 0; i < editables.length; i++) {
        var editable = editables[i];
        person[editable.name] = editable.value;
    }
    var jform = JSON.stringify(person);
    $.post('/Person/EditPerson', jform, null, 'json');
}

1 个答案:

答案 0 :(得分:1)

尝试使用AJAX帖子并指定
contentType to&#39; application / json;字符集= UTF-8&#39;

     $.ajax( {
     type: "POST",
     url: /Person/EditPerson',
     contentType: 'application/json; charset=utf-8',
     data: jform
     }

如果这不能解决问题,请发布标题信息。我猜测使用$ post发送&#34; application / x-www-form-urlencoded&#34; .NET MVC不喜欢的数据。

http://api.jquery.com/jQuery.ajax/