2

次の 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 アクションに到達し、x 変数を中断しましたが、person 変数のすべてのプロパティが null です。私が間違っている可能性のあるヒントはありますか? この時点で、生の 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 に答える