ASP.NET核心MVC中复杂模型到控制器的形式

时间:2017-12-20 09:47:43

标签: c# asp.net-core asp.net-core-mvc model-binding

我对复杂模型的表格帖子有疑问。我的模型有一个子类IEnumerable s:

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; }
}

从我的视图到控制器的输入的最佳方法是什么? Modelbinder可以绑定它吗?

1 个答案:

答案 0 :(得分:0)

  

Modelbinder可以绑定吗?

是的,它可以做更复杂的东西然后这个类结构。

  

从我的视图到控制器的输入的最佳方法是什么?

Post是json。

示例:

你可以发布这个json

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

对于像这样的控制器方法

public IActionResult Post([FromBody]MyViewModel model)

它将被翻译成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"} 
};