使用数据注释自定义生成的ASP.NET MVC表单元素名称

时间:2011-12-23 23:01:37

标签: asp.net-mvc-3

通常,在使用HTML帮助程序时,我可以使用自动生成的表单元素名称:

@Html.TextBoxFor(m => m.Property)

不幸的是,我需要创建一个具有特定input属性的name

我意识到我可以使用普通HTML构建输入并使用模型绑定器或BindAttribute来检索其提交的值。但是,我想知道是否有办法让属性来指定生成的输入名称并启用绑定。

这可能吗?如果是这样,怎么办呢?

2 个答案:

答案 0 :(得分:1)

我建议只使用带有绑定名称的隐藏输入,然后使用预期名称呈现单独的输入。假设这是一个JS控件。从那里,绑定可见输入的change事件以克隆到隐藏的输入。

答案 1 :(得分:0)

描述

设置input元素名称的一种方法是使用TextBoxFor的重载。 但这会导致默认模型绑定器出现问题。您可以创建自己的ModelBinder来解决此问题。

示例

@Html.TextBoxFor(m => m.Property, new { @name = "YourName" })