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

Gop*_*her 10 asp.net-mvc

下面使用类型化的帮助器为模型字段生成输入元素:

Html.HiddenFor(m => m.FieldName)
Run Code Online (Sandbox Code Playgroud)

生成的字段名称是FieldName.如何为名称添加前缀以使其呈现为?name="prefix.FieldName"

run*_*sen 17

您可以使用HtmlHelper设置前缀

htmlHelper.ViewContext.ViewData.TemplateInfo.HtmlFieldPrefix = "foo";
Run Code Online (Sandbox Code Playgroud)

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

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