我已经使用required属性标记了我的模型的属性。有没有办法访问此信息客户端?我的目标是在需要/不需要哪些字段(如Html.EditorFor或其他东西)上有某种指示。我想避免简单地进入视图并添加指标,因为我想将所需的东西保存在一个位置(模型)。感谢。
分配css规则规则是我唯一的选择吗?
答案 0 :(得分:2)
您可以在CSS中检查data-required
属性,因为该属性已添加到MVC为所需属性生成的HTML中。
我之前没有这样做,但CSS选择器可能如下所示:
[data-required="true"]
希望这会有所帮助,让我知道它是怎么回事。
答案 1 :(得分:0)
好的,我让它使用这个javascript和jquery:
$(function () {
$(':input[data-val-required]').each(function () {
var name = $(this).attr('name');
var selector = 'label[for=' + name + ']';
var label = $(selector).first();
var innerHtml = label.html() + '*';
label.html(innerHtml);
});
})
这个想法是输入有" data-val-required"将[Required]属性添加到模型时。当你使用:
<%= Html.LabelFor(m => m.VendorId) %>
<%= Html.EditorFor(m => m.VendorId) %>
html看起来像这样:
<div>
<label for="VendorId">Vendor Id</label>
</div>
<div>
<input id="VendorId" class="text-box single-line" type="text" value="" name="VendorId" data-val-required="The Vendor Id field is required." data-val-length-max="255" data-val-length="The Vendor Id field can't exceed 255 characters." data-val="true"></input>
<span class="field-validation-valid" data-valmsg-replace="true" data-valmsg-for="VendorId"></span>
</div>
请注意输入的名称&#39; (&#39; id&#39;也会起作用)并标记&#39; for&#39;匹配所以使用它来改变标签html与jquery。