2017-06-06 6 views
0

MVCはオブジェクトをnullとして受け取っています。C#MVC - 内部の別のオブジェクトのリストを持つオブジェクトを渡す

MVCポスト

[HttpPost] 
public ActionResult Create(ObjectWithList objectWithList) { 
    // While debugging objectWithList has its properties null 
} 

ObjectWithList

public class ObjectWithList 
{ 
    public List<Foo> Foo { get; set; } 
    public AnotherFoo AnotherFoo { get; set; } 
} 

fooとAntoherFooは、文字列のように、など、通常のプロパティを持つクラスです

ポストマンI POSTを使用して: ヘッダを:Content-Type as application/json ボディ(生):

{ 
    "Foo": [ 
      {} 
    ] 
    ... 

それが動作する、(AnotherFooを埋める):

{ 
    "Foo": [ 
     { 
      "Name": "test" 
     }, 
     { 
     "Name": "test" 
     } 
    ], 
    "AnotherFoo": { 
     "Name": "asd", 
     "Email": "[email protected]" 
    } 
} 

私はちょうど "foo" という空を渡した場合。しかし、私がFooの中で何かを渡そうとすると、MVCはすべてをnullにします。

私が正しくJSON

+0

コントローラアクションで** [FromBody] **属性を試しましたか? –

+0

[ASP.NET CoreのモデルバインディングJSON POST](https://andrewlock.net/model-binding-json-posts-in-asp-net-core/) – aspark

答えて

0

にはFooとAnotherFooの性質を命名てるような何か試してみてください:

var foos = { 
"Foo": [ 
     { 
      "Name": "test" 
     }, 
     { 
     "Name": "test" 
     } 
    ], 
    "AnotherFoo": { 
     "Name": "asd", 
     "Email": "[email protected]" 
    } 
}; 

$.ajax({ 
    url: "YourUrl", 
    type: "POST", 
    contentType: "application/json", 
    data: JSON.stringify({ objectWithList: foos }) 
}).done(function(result){ 
//do something 
}); 
1

あなたは、コントローラのアクションの[FromBody]属性を試みたことがありますか?

[HttpPost] 
public ActionResult Create([FromBody]ObjectWithList objectWithList) { 

} 
関連する問題