0
我敲我的頭靠在牆上這一段時間的列表,一些幫助,將不勝感激:asp.net的MVC:使用模板編輯器更新對象,
比方說我,我們有一個簡單的模型:
public class Contact {
public string FirstName { get; set; }
public string LastName { get; set; }
}
和一個簡單的編輯寺廟:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Rpdc.Models.Contact>" %>
FirstName: <% = Html.TextBoxFor(x => x.FirstName)%><br />
SecondName: <% = Html.TextBoxFor(x => x.LastName)%><br />
我要完成什麼,是做顯示可編輯聯繫人的列表,每個都有自己的「保存」按鈕。 如果我做這種方式:
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IList<Rpdc.Models.Contact>>" %>
<asp:Content ID="Content3" ContentPlaceHolderID="MainContent" runat="server">
<% foreach(Contact c in Model) { %>
<% using(Html.BeginForm("UpdateContact", "Home")) { %>
<%=Html.EditorFor(x => c) %>
<input type="submit" value="save" />
<% } %>
<% } %>
</asp:Content>
它使得編輯爲每個對象的名單,但所有的文本框具有相同的ID(「c_FirstName」和「c_LastName」每個「聯繫人」對象)。
而且這樣:
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IList<Rpdc.Models.Contact>>" %>
<asp:Content ID="Content4" ContentPlaceHolderID="MainContent" runat="server">
<% using(Html.BeginForm("UpdateContact", "Home")) { %>
<%=Html.EditorForModel() %>
<input type="submit" value="save" />
<% } %>
</asp:Content>
它呈現對象的列表,但只有一個保存按鈕提交的所有對象。 (Works,但它不是我所需要的)
是否有一種乾淨的方式來顯示對象列表的編輯器列表,每個對象都有一個單獨的「保存」按鈕,並且沒有元素具有重複的ID?
謝謝
Darin,感謝您的回覆,但有一個問題:在表單提交後,框架將從ModelState恢復輸入控件的值。現在,因爲所有文本框的名稱都是相同的,它們都會從提交的表單中接收該文本框的值。另外我想避免在編輯器模板中使用表單,我認爲一個簡單的用戶控件會更好地適應它。 – Vladikk 2010-10-18 18:50:31