2

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

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

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

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

我的视图模型如下:

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

达到了 EditPerson 操作,我打破了 x 变量,但是 person 变量中的所有属性都是空的,有没有人暗示我可能做错了什么?在这一点上,我什至可以接受原始 JSON 字符串并从那里解析,但我无法将任何参数放入操作方法。

我通过请求发布的 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');
}
4

1 回答 1

1

尝试使用 AJAX 帖子并将
contentType 指定为 'application/json; 字符集=utf-8'

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

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

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

于 2015-02-11T00:24:32.927 回答