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

标签 data-binding post asp.net-mvc-3 binding

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

最佳答案

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

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 属性。显然这个约定也适用于 lists and dictionaries .

无论这些值是在查询字符串(GET 请求)中、作为表单值(POST 请求)还是作为路由值发送,对于默认模型绑定(bind)器来说并不重要。它将查看所​​有这些地方。

并且您永远不应该忘记,如果此默认命名约定不适合您的特定要求,您应该随意 write a custom model binder .

备注:uploading files也有这种情况.

关于data-binding - ASP.NET MVC3 如何将 GET/POST 中的数据收集到模型中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5506479/

相关文章:

asp.net - 是否可以在共享主机上使用 EF CodeFirst?特别是初始化程序?

c# - 是否有基于 T4 旁边的模板生成 Razor View (.cshtml) 的方法?

c# - DataBind 具有子相关内容的列表的最佳方式(例如,带有标签的 SO 问题)

PHP $_POST 变量不处理由 Javascript 生成的输入字段

asp.net-mvc-3 - 如何从 Orchard 中删除高级菜单模块?

mysql - 将 JSON 字符串插入 MySQL 列 UTF-8

android - Retrofit2 post 方法显示服务器内部错误但 postman 给出响应

wpf - 第一次从绑定(bind)扩展时,ListBox 内的扩展器不显示内容

silverlight - 简单的 silverlight 数据绑定(bind)列表框到 List<>

c# - 异步填充强类型数据集