Data binding ASP.NET MVC3如何将GET/POST中的数据收集到模型中?

Data binding ASP.NET MVC3如何将GET/POST中的数据收集到模型中?,data-binding,post,asp.net-mvc-3,binding,Data Binding,Post,Asp.net Mvc 3,Binding,我已经为ASP.NET MVC3做了准备,现在我知道了如何轻松实现自己的。但是,要使编辑器工作,它不仅必须在文本框中显示该数据,还必须以某种方式将用户编辑的内容传输到服务器进行处理。那么,这种绑定对于复杂模型是如何工作的呢?MVC如何决定每个POST值的去向?有一些神奇的命名约定吗?对于非常复杂的模型,如动态列表、字典或数据表,如何处理?有一个命名约定。例如,如果您有以下模型: public class Foo { public Bar Bar { get; set; } } publ

我已经为ASP.NET MVC3做了准备,现在我知道了如何轻松实现自己的。但是,要使编辑器工作,它不仅必须在文本框中显示该数据,还必须以某种方式将用户编辑的内容传输到服务器进行处理。那么,这种绑定对于复杂模型是如何工作的呢?MVC如何决定每个POST值的去向?有一些神奇的命名约定吗?对于非常复杂的模型,如动态列表、字典或数据表,如何处理?

有一个命名约定。例如,如果您有以下模型:

public class Foo
{
    public Bar Bar { get; set; }
}

public class Bar
{
    public string Baz { get; set; }
}
以及以下行动:

public ActionResult Index(Foo foo) { ... }
您可以发送以下请求:

/home/index?Bar.Baz=somevalue
以设置Baz值。当然,这将自动实例化Foo模型及其Bar属性。显然,这项公约也适用于其他国家

无论这些值是以查询字符串(GET请求)、表单值(POST请求)还是路由值的形式发送,对于默认的模型绑定器来说都无关紧要。它将看到所有这些地方

您永远不要忘记,如果这个默认命名约定不适合您的特定需求,您应该可以自由选择

注:也有这样的情况