我正在使用ASP.NET MVC 3 RTM。是否可以通过使用属性?
来更改从视图模型渲染的HTML示例:
public class Product
{
[AddHtmlAttribute(Name = "disabled", Value = "disabled")]
public string Name { get; set; }
}
我希望该属性能够更改呈现的HTML,该属性会导致。我知道它不能仅使用属性来完成。我可能必须通过实现一个接口来挂钩系统,但我应该在哪里看?
我知道MVC使用默认的编辑器模板,我在MVC 3源代码中查看了它们,但是我无法弄清楚是否有可能以某种方式挂钩到渲染元素并添加一些属性。我知道验证系统通过添加自定义HTML属性来支持不显眼的验证。
我想我只需要一个指向我应该看的地方的指针,或者我应该看一下什么界面。
非常感谢你。
更新:我正在为我的字段使用标准HTML帮助器Html.EditorFor(model => model.Name)
,并且没有覆盖任何编辑器模板。如果我不必更改或覆盖默认模板,我真的更喜欢。
答案 0 :(得分:5)
您可以签出following blog post,其中说明了如何通过编写自定义DataAnnotationsModelMetadataProvider
,属性并覆盖默认模板来实现此目的。