如何使用.NET数据注释属性附加自定义HTML属性或CSS类?

Ren*_*ené 4 html custom-attributes asp.net-mvc-3

我正在使用ASP.NET MVC 3 RTM.是否可以通过使用属性更改从视图模型呈现的HTML?

例:

public class Product
{
    [AddHtmlAttribute(Name = "disabled", Value = "disabled")]
    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我希望该属性能够更改呈现的HTML,该属性会导致.我知道它不能仅使用属性来完成.我可能必须通过实现一个接口来挂钩系统,但我应该在哪里看?

我知道MVC使用默认的编辑器模板,我在MVC 3源代码中查看了它们,但是我无法弄清楚是否有可能以某种方式挂钩到渲染元素并添加一些属性.我知道验证系统通过添加自定义HTML属性来支持不显眼的验证.

我想我只需要一个指向我应该看的地方的指针,或者我应该看一下什么界面.

非常感谢.

更新:我正在Html.EditorFor(model => model.Name)为我的字段使用标准HTML帮助程序,并且没有覆盖任何编辑器模板.如果我不必更改或覆盖默认模板,我真的更喜欢.

Dar*_*rov 5

您可以查看以下博客文章,其中说明了如何通过编写自定义DataAnnotationsModelMetadataProvider,属性和覆盖默认模板来实现此目的.