C# MVC如何将表单数据序列化到模型?

C# MVC如何将表单数据序列化到模型?,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,MVC如何从表单数据设置对象的属性 例如: [HttpPost] public ActionResult Method(SomeModel model) <--- { .... } 实际结果: { DateTimeFormat: "MM/dd/yyyy", FieldColumnPairs: null } 预期结果:(来自visual studio调试器中的局部变量) 这就是它的工作原理。看看@RyanTernier,我明白了,但是当它脱离控制器的上下文时,我如

MVC如何从表单数据设置对象的属性

例如:

[HttpPost]
public ActionResult Method(SomeModel model) <---
{
    ....
}
实际结果:

{
    DateTimeFormat: "MM/dd/yyyy",
    FieldColumnPairs: null
}
预期结果:(来自visual studio调试器中的局部变量)


这就是它的工作原理。看看@RyanTernier,我明白了,但是当它脱离控制器的上下文时,我如何做同样的事情呢?例如,将模型和请求传递给返回模型实例的静态方法?为什么要在代码内部的任何位置传递原始表单数据?用例是什么?控制器序列化表单数据的整个要点是,这样您就可以在代码中使用它作为适当的对象,并在函数之间传递该对象,并且能够用它做比原始请求体多得多的事情。也许我没有抓住要点,但我不能很好地理解通过(听起来像什么)在应用程序的另一部分中重新创建反序列化程序来实现什么。为什么这对您有用?@ADyson它为我提供的价值是能够为向导过程中的每个步骤动态设置操作。我想要一个类,在这个类中我可以分配操作和预期的模型类型,而不是为控制器主体中的“向导”实现草率的多变量代码。好的,但所有这些都不需要您将原始表单数据传递到控制器之外。控制器仍然可以先为您序列化它。
public class ExampleModel
{
    //Default formats to search for
    public readonly string[] DateTimeFormats =
    {
        "yyyy-MM-dd",
        "MM/dd/yyyy",
        "MM-dd-yyyy"
    };

    [Display(Name = "Date Format")]
    public string DateTimeFormat { get; set; } = "MM/dd/yyyy";

    Dictionary<long, int?> FieldColumnPairs { get; set; }
}
 {
    "DateTimeFormat":"MM/dd/yyyy",
    "FieldColumnPairs[0].Key":1,
    "FieldColumnPairs[0].Value":5,
    "FieldColumnPairs[1].Key":2,
    "FieldColumnPairs[1].Value":5,
    "FieldColumnPairs[2].Key":3,
    "FieldColumnPairs[2].Value":5,
 }
{
    DateTimeFormat: "MM/dd/yyyy",
    FieldColumnPairs: null
}
{
    DateTimeFormat: "MM/dd/yyyy",
    FieldColumnPairs: Count = 33
    [0]               {[1,5]}
    [1]               {[2,5]}
    [2]               {[3,5]}
    [3]               {[4, ]}
}