我在我的代碼中使用編輯器模板,我注意到很多控件獲取基於索引的名稱屬性集。ASP.NET MVC3 EditorTemplates和名稱屬性
@Html.EditorFor(x => x.Emails)
如果答案是EmailViewModel對象的集合
什麼被渲染的是這對於每一項:
<input data-val="true" data-val-number="The field must be a number."
data-val-required="The Email field is required."
id="Emails_0__EmailId" name="Emails[0].EmailId" value="1">
我試圖設置name屬性是這樣的:
@Html.TextBoxFor(x => x.EmailId, new { @name = "EmailAdress" })
但這沒有效果!
我需要做什麼,它需要名稱值有效。這樣做的主要原因是用於驗證目的。在我的驗證規則,我有以下幾點:
$("#someForm").validate({
rules: {
EmailAddress: {
required: true,
email: true
}
}
});
x.Emails列表或數組?你不應該使用EditorFor()到對象列表,除非你創建你自己的Editor模板,對列表對象進行正確的處理。 – renanlf
它以這種方式命名它們,以便模型聯編程序可以正確地綁定到一個集合。如果你改變這個,你將不得不做一些額外的工作,以確保在發佈表單時所有東西都能正確綁定。 – Dismissile