我有以下問題。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