5

複合型をパラメーターとして受け入れる WebAPI コントローラーに JSON 文字列を POST しようとしていますが、すべてのパラメーター プロパティは常に null です。以下のコードに基づいて、理由はありますか? リクエストは WebAPI メソッドに適切にヒットしており、パラメーターは null ではありませんが、そのプロパティはすべて null です。

編集: JSON.stringify() への呼び出しを削除すると、パラメーターのプロパティは正しく入力されますが、リクエストの本文は有効な JSON オブジェクトではなくクエリ文字列になり、実際のオブジェクトにもいくつかのサブオブジェクトが保持されているため、これは飛行しません。クエリ文字列として渡されたときに機能しないコレクション。

モデル

public class SavedViewData
{
    public int UserID { get; set; }
    public int? SavedID { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
}

JSON リクエスト本文(Fiddler からコピー)

{"UserID":"1","SavedID":null,"Name":"Test","Description":"Description"}

WebAPI アクション

[HttpPost]
public int Save(SavedViewData viewData)
{
    return 1;
}

jQuery $.ajax 呼び出し

var view = {
    UserID: userID,
    SavedID: null,
    Name: 'Test',
    Description: 'Description'
};

$.ajax({
    type: "POST",
    url: '/api/save',
    data: JSON.stringify(view),
    contenttype: "application/json; charset=utf-8",
    success: function (data) {    
        alert('success');
    }
});
4

1 に答える 1

7

だから私が予想したように、それはばかげたことでした:

contenttype: "application/json; charset=utf-8",

になるはずだった

contentType: "application/json; charset=utf-8",

型の「T」は大文字ではありませんでした...半日あります!

于 2013-09-12T19:36:14.607 に答える