我有以下问题。ASP .NET MVC 3自定义Html 5数据属性使用C#
我有,我想贴上数据 - 属性和特定的类像这样的HTML元素:
<element id="" class="custom_class" data-attribute="value" data-attr-two="value2"></element>
,但我想在模型级别定义这些属性,像这样:
public class ModelName
{
[DataAnnotation({attribute = "value", attr_2 = "value2"})]
[Class= "custom_class"]
public type PropertyName { get; set;}
}
我知道自定义验证属性,但问题是他们的元素看起来是这样的:
<element id="" class="custom_class" data-val-attribute="value"/></element>
而不是这个:
<element id="" class="custom_class" data-attribute="value"/></element>
如果有另一种方式来做到这一点像也许增加一个字典HTML辅助就像这样:
@Html.TextBoxFor(model => Model, new { DataAnnotation : DataAnnotationObjectModel.Create({Message = "something", Name = "something" }))
的DataAnnotationObject是一类与所有类型的data-attributes id正在使用,并且一些方法将创建预先枚举重复数据的默认对象。
我知道我能做到这一点:
@Html.TextBoxFor(model => Model, new { data_attr = @item.Value } )
但我要去必须添加5点或更多的属性,并在每一个模型中的每个属性,我希望把它做的和IM将不得不这样做每个物业至少3次。
有没有办法做到这一点?
如果你有一些很难理解这个问题,请随时发表评论,如果您有问题,我会尽我所能解释
这是一个可行的解决方案。唯一的问题是,我将不得不像这样为所有其他html助手编写重载。如果我最终没有找到任何其他替代方案,这将是我将遵循的路线 – S3cretz
或者,您可以调查使用“EditorFor()”辅助方法并为您的属性类型创建EditorTemplates。我知道Editor模板在运行时接收属性名称来生成ID,但我不知道它可以获取完整的属性Info和Attributes。如果是这样,你应该可以只用EditorTemplates。 – Tallmaris