使用类型化HTML帮助程序时的模型前缀

时间:2010-03-29 11:02:15

标签: asp.net-mvc

以下使用类型化帮助程序为模型字段生成输入元素:

Html.HiddenFor(m => m.FieldName)

生成的字段名称为FieldName。如何在名称中添加前缀,使其呈现为name="prefix.FieldName"

2 个答案:

答案 0 :(得分:17)

您可以使用

设置HtmlHelper的前缀
htmlHelper.ViewContext.ViewData.TemplateInfo.HtmlFieldPrefix = "foo";

因此,如果您在Html.ViewContext.ViewData.TemplateInfo.HtmlFieldPrefix = "Foo"之前设置Html.HiddenFor(m => m.FormId),结果字段名称将变为'Foo.FormId'

我建议为HtmlHelper编写扩展方法,而不是在视图中处理这个逻辑。然后,您可能希望使用modeltype的名称作为前缀。

答案 1 :(得分:1)

你做不到。您可以使用编辑器模板。布拉德威尔逊有series of blog posts描述他们。 Scott Gu也在post中介绍了它们。