Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用.NET数据注释属性附加自定义HTML属性或CSS类?_Html_Asp.net Mvc 3_Custom Attributes - Fatal编程技术网

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

如何使用.NET数据注释属性附加自定义HTML属性或CSS类?,html,asp.net-mvc-3,custom-attributes,Html,Asp.net Mvc 3,Custom Attributes,我正在使用ASP.NETMVC3RTM。是否可以使用属性更改视图模型中呈现的HTML 例如: public class Product { [AddHtmlAttribute(Name = "disabled", Value = "disabled")] public string Name { get; set; } } 我希望该属性能够更改呈现的HTML,该属性将导致。我知道单凭属性是做不到的。我可能必须通过实现一个接口来连接到系统中,但是我应该去哪里寻找呢 我知道MVC使

我正在使用ASP.NETMVC3RTM。是否可以使用属性更改视图模型中呈现的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)
,并且没有覆盖任何编辑器模板。如果我不必更改或覆盖默认模板,我会更喜欢。

您可以签出,它说明了如何通过编写自定义的
DataAnnotationsModelMetadataProvider属性并覆盖默认模板来实现这一点。

您能提供一个视图代码示例吗?您是否使用输入帮助程序、编辑器模板(内置、自定义)?感谢您提供的链接,非常有用。然而,我有点希望它可以在不覆盖默认值的情况下完成templates@Gunder恐怕不行。如果您使用EditorFor,则默认模板将被呈现,如果您不重写它们,它们将不会包含此类属性。@DarinDimitrov,该博客文章中的方法是否仍然适用于MVC5,或者是否有更好的方法来实现这一点?遗憾的是,博客已不复存在。链接已断开。