有没有办法在HTML标记上呈现html5数据属性?在这种情况下,我希望能够从Model类中指定表单输入控件的默认值:
[AdditionalMetadata("data-default-value", "60")]
我正在使用AdditionalMetadata属性添加我想要的数据属性和值,并使用TextBoxFor帮助器来呈现输入标记。问题是我没有看到数据属性 - 我是否需要做其他事情才能呈现它?有没有更好的方法从Model类中执行此操作?
马克
答案 0 :(得分:0)
据我所知,AdditionalMetadata不会在您的标记中呈现任何内容。
您可以看到this article,其中显示了如何从属性中获取值,但是您应该手动将数据属性添加到输入中。
答案 1 :(得分:0)
您需要具备以下内容,具体取决于您的模型(以及您访问您的财产的位置):
从模型元数据中获取目标属性,然后检索“data-”属性值:
string ddv = ViewData.ModelMetadata.Properties.Where(x => x.PropertyName == "myProperty)
.FirstOrDefault().AdditionalValues["data-default-value"].ToString();
渲染属性时使用此信息:
@Html.TextBoxFor(x=>x.MyProperty, new { data-default-value = ddv })
编辑:由于C#在使用减号(“ - ”)时很敏感,因此最好的选择是在提供此类HTML属性时构建Dictionary<string, object>
Dictionary<string, object> htmlAttributes = new Dictionary<string, object>();
htmlAttributes.Add["data-default-value", ddv];
@Html.TextBoxFor(x=>x.MyProperty, htmlAttributes);