2017-12-20 18 views
0

복잡한 모델의 양식 게시 관련 질문이 있습니다.ASP.NET 핵심 MVC 컨트롤러에서 복잡한 모델의 양식 게시

public class MyViewModel 
{ 
    public int SingleInteger { get; set; } 
    public IEnumerable<int> MultipleInts { get; set; } 
    public IEnumerable<MySubclass> AssembledClass { get; set; } 
    public IEnumerable<string> MultipleStrings { get; set; } 
} 

public class MySubclass 
{ 
    public int Quantity{get;set;} 
    public int Type{get;set;} 
} 

내 컨트롤러 내보기에서 입력을 얻을 수있는 가장 좋은 방법은 무엇입니까 : 내 모델은 서브 클래스 및 IEnumerables이있다? Modelbinder가 이것을 묶을 수 있습니까?

+0

MVC6과 같은 것은 없습니다. – Tseng

+0

* 실제 * 양식 게시물 인 경우 HTML 양식의 실제 데이터 디자인은 이보다 훨씬 더 흥미 롭습니다. -하지만 네, 모델 바인더는 여기에서 문제가되지 않을 것입니다. – poke

답변

0

Modelbinder도 이것을 바인딩 할 수 있습니까?

예,이 클래스 구조보다 훨씬 복잡한 작업을 수행 할 수 있습니다.

내보기에서 내 컨트롤러로 입력하는 가장 좋은 방법은 무엇입니까?

게시물은 json입니다.

예 :이

public IActionResult Post([FromBody]MyViewModel model) 

같은 컨트롤러 방법이 JSON

{"singleInteger":1,"multipleInts":[1,2,3],"assembledClass":[{"quantity":1,"type":2}],"multipleStrings":["one","two"]} 

을 게시 할 수

그리고이

같은 MyViewModel의 인스턴스로 변환됩니다
var model = new MyViewModel 
{ 
    SingleInteger = 1, 
    MultipleInts = new List<int>(){ 1,2,3 }, 
    AssembledClass = new List<MySubclass>{ 
     new MySubclass 
     { 
      Quantity = 1, 
      Type = 2 
     } 
    }, 
    MultipleStrings = new List<string>(){ "one", "two"} 
};