3
模型:MVC 3形式和列表:默認模型粘合劑和EditorFor
public class MyObject
{
public IList<Entry> Entries;
}
public class Entry
{
public string Name { get; set; }
}
如果我使用默認EditorFor(型號=> model.Entries)的名稱/ ID值是:
<input type="text" value="" name="Entries[0].Name" id="Entries_0__Name">
相反,如果我想創建一個模板EditorFor像這樣:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<List<CMS.Models.MyObject>>" %>
<div class="list">
<%
for (int i = 0; i < Model.Count; i++)
{ %>
<div class="object" id="<%: i %>">
<%: Html.EditorFor(model => Model[i]) %>
<%: Html.ValidationMessageFor(model => Model[i]) %>
</div>
<% } %>
</div>
所發出的名稱/ ID值是:
<input type="text" value="" name="Entries.[0].Name" id="Entries__0__Name">
因此,名稱在屬性名稱和[0]之間有一段時間,id在索引號的左側有一個額外的下劃線。這不適用於默認模型聯編程序。有沒有辦法做到這一點,使用默認的模型聯編程序?
你爲什麼要這樣做?你只是想要包含驗證信息,或者真的需要使用ID集合來設置div標籤嗎? – 2011-02-11 01:13:36
我這樣做是爲了讓我可以在列表的末尾添加一個通用的基於jQuery的「添加」選項來添加另一個元素。使用該HTML發佈列表使得「添加」泛型更容易。想想一個表格,其中一個部分需要N個引用(每個引用具有多個屬性),另一個部分需要N個關於其他東西的詳細信息(每個部分都有多個屬性)等... – Cymen 2011-02-11 01:16:03