我已經使用required屬性標記了模型的屬性。有沒有辦法訪問這個信息客戶端?我的目標是對需要/不需要哪些字段(如Html.EditorFor或類似的*)有某種指示。我想避免簡單地進入視圖並添加指標,因爲我想將所需的東西保存在一個位置(模型)。謝謝。MVC 4如何訪問模型的客戶端所需屬性
分配一個CSS規則規則我唯一的選擇?
我已經使用required屬性標記了模型的屬性。有沒有辦法訪問這個信息客戶端?我的目標是對需要/不需要哪些字段(如Html.EditorFor或類似的*)有某種指示。我想避免簡單地進入視圖並添加指標,因爲我想將所需的東西保存在一個位置(模型)。謝謝。MVC 4如何訪問模型的客戶端所需屬性
分配一個CSS規則規則我唯一的選擇?
您可以檢查CSS中的data-required
屬性,因爲該屬性已添加到MVC爲所需屬性生成的HTML中。
我沒有做過,但CSS選擇器可能是這樣的:
[data-required="true"]
希望這會有所幫助,讓我知道如何去。
看到我的答案,但你提到的選擇幫助我解決。謝謝 – aelstonjones
@aelstonjones很高興能幫到你。 – Kehlan
好吧,我得到它與這個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);
});
})
的想法是,在輸入了「數據-VAL-需要」的時候,[必需]屬性添加到模型。當您使用:
<%= 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>
注意「爲」匹配輸入的「名稱」(「身份證」也將工作)和標籤,以便使用該用jQuery改變標籤html。
可能是你需要編寫一個定製版本的Html.LabelFor輔助方法 – Shyju
除了我主要使用Html.EditorForModel(),這是一個好主意。有什麼方法可以重寫EditorForModel如何呈現標籤,還是我需要自定義該標籤? – aelstonjones