asp.net-mvc-3 - 在 HttpPost 上将嵌套模型与 MVC3 绑定(bind)

标签 asp.net-mvc-3 http-post actionresult editorfor editorformodel

我是 MVC3 的新手。

我在表单上有一个提交按钮,我想绑定(bind)一个模型,该模型具有 2-3 个嵌套对象模型,其中包含许多属性。

有没有办法在不使用 EditorFor 的情况下绑定(bind)这些嵌套对象;这样当我提交表单时,我将在返回的模型上采用 ActionResult(Object model),嵌套对象模型及其值,而不必在 html 上实现隐藏值或表单?

最佳答案

DefaultModelBinder按约定工作,因此要使其工作,表单字段必须遵守 MVC 命名约定。

如果您不想使用 EditorForModel要创建表单,则必须为每个字段实现自己的命名约定,并设置 ViewData.TemplateInfo.HtmlFieldPrefix对于每个元素。然后,您必须创建一个自定义 ModelBinder 以获取返回的表单,并根据您的命名约定绑定(bind)到您的模型。

请注意,这会在 MVC3 中产生一些其他问题,其中最重要的是渲染 DropDownLists 和其他一些项目的不显眼验证可能会失败。

对于一般情况,最好在 View 中使用 EditorForModel,并使用 MVC 的现有约定。您可以创建一个特定于每个嵌套模型的 View 。 Brad Wilson 在 this article 中对该过程进行了很好的概述。 .

关于asp.net-mvc-3 - 在 HttpPost 上将嵌套模型与 MVC3 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7545515/

相关文章:

android - Android 中的 HttpPost - 无法识别的字符

c++ - 使用cpp-httplib上传文件

c# - MVC3 重定向到 ActionResult 的路由

visual-studio-2010 - MVC3重新安装VS2010 SP1

asp.net-mvc - 带有模型的 MVC 3 表单回发

c# - 登录用户在一段时间后注销

android - 如何使用字节数组上传图像

javascript - ASP.NET MVC - 返回 JavaScriptResult 不起作用

java - Struts 2 中不丢失请求属性的重定向

asp.net-mvc - MVC ActionResult 和 QueryString