4

Visual Studio 2015 プレビューで JSON オブジェクトを MVC に投稿しようとしています。ただし、データはアクション メソッド パラメーターにバインドされていないようです。以前のバージョンの MVC には、これを処理する JsonValueProviderFactory が登録されていましたが、MVC6 では見つからないようです。セットアップが変更されましたか? これは以前のバージョンですぐに使用できましたか?

基本的に私はコントローラーメソッドを持っています

public ActionResult Save(Person person)
{
   ...
}

私はjavascriptから呼び出そうとしています:

var personData = { Name : 'John Doe' };
$.ajax({
        url: '@Url.Content("~/Person/Save")',
        type: "POST",
        data: JSON.stringify(personData ), 
        dataType: "json", 
        contentType: "application/json; charset=utf-8"
    })

以前のバージョンの MVC では、json オブジェクトは c# パラメーターにマップされていました。たとえば、この記事を参照してください http://webcognoscere.com/post/How-to-POST-a-JSON-object-to-a-Controller-Action .aspx

4

1 に答える 1

9

パラメータに追加[FromBody]します。MVC 6 では、MVC と Web API のロジックが 1 つのシステムに統合されました。つまり、投稿の本文から JSON としてデシリアライズする必要があるコンテンツは、アクション メソッドのパラメーターで明示的に指定する必要があります。

public ActionResult Save([FromBody] Person person)
{
    ...
}
于 2014-12-02T22:27:17.373 に答える