ASP MVC 2:基于ModelMetaData自定义显示所需的表单元素

时间:2010-05-17 15:08:04

标签: asp.net-mvc asp.net-mvc-2

我有一个使用表单的MVC 2应用程序。表单中的必填字段使用更新model metadata的属性进行设置。表单字段使用MVC HtmlHelper方法创建:Html.EditorFor

就验证而言,此工作正常,但似乎默认情况下,不向用户显示必填字段(例如,通过向控件附加*)。

如果我想提供一些向用户显示此事实的自定义方法(例如,让我想更改编辑控件的背景颜色),哪里是最佳选择?我是否需要创建一个自定义的html帮助器来替换EditorFor?我试过,但似乎很难获得正确属性的元数据访问权限。我已经有了一个自定义的ModelMetaDataProvider,所以如果这是正确的地方,那么添加它就没有问题。

1 个答案:

答案 0 :(得分:2)

您可能需要自定义模板,而不是自定义帮助程序。您的自定义模板将模仿标准模板,但您必须具有必填字段的标记。有关如何进行操作的详细信息,请参阅Brad Wilson的blog article关于MVC2中的模板,但基本思想是在模型中强类型的Shared / EditorTemplates(和Shared / DisplayTemplates)文件夹中生成ViewUserControl。然后,您可以使用EditorFor和DisplayFor并指定要使用的模板名称,但我认为如果模型强烈键入模型,它也会选择模板。