Asp.net mvc 使用类型化HTML帮助程序时的模型前缀

Asp.net mvc 使用类型化HTML帮助程序时的模型前缀,asp.net-mvc,Asp.net Mvc,以下内容使用类型化帮助器为模型字段生成输入元素: Html.HiddenFor(m => m.FieldName) 生成的字段名为FieldName。如何向名称添加前缀,使其呈现为name=“prefix.FieldName”?您不能。您可以改用编辑器模板。布拉德·威尔逊(Brad Wilson)对他们有一个描述。Scott Gu也在本文中介绍了它们。您可以使用 htmlHelper.ViewContext.ViewData.TemplateInfo.HtmlFieldPrefix =

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

Html.HiddenFor(m => m.FieldName)

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

您不能。您可以改用编辑器模板。布拉德·威尔逊(Brad Wilson)对他们有一个描述。Scott Gu也在本文中介绍了它们。

您可以使用

htmlHelper.ViewContext.ViewData.TemplateInfo.HtmlFieldPrefix = "foo";
因此,如果在
Html.HiddenFor(m=>m.FormId)
之前设置
Html.ViewContext.ViewData.TemplateInfo.htmlfiedprefix=“Foo”
,则结果字段名将变为“Foo.FormId”

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