的問題似乎是很老,由於某種原因已編輯,以便有人可能仍然有興趣。
我想知道爲什麼OP沒有考慮內置的web窗體綁定。雖然現在我主要使用MVC,但多年來我們都使用ASP.NET數據綁定開發了許多應用程序,並且它確實可行。
在這種特殊情況下,我將創建一個可以作爲單個文本框模型的類。該類將包含值,CSS類,可能還有其他一些屬性。
public class RowModel
{
public string Text { get; set; }
public string CSSClass { get; set; }
...
}
然後,我將有一箇中繼器,一個GridView或ListView和我把一個文本框,在該行的模板。
<asp:ListView ID="listView1" runat="server">
...
<ItemTemplate>
<asp:TextBox id="textBox" runat="server"
cssclass="<%# CSSClass %>" Text="<%# Text %>" />
</ItemTemplate>
然後,在後面的代碼中,我只是將模型實例列表綁定到可綁定控件。
List<RowModel> rowList;
...
if (!this.IsPostBack)
{
listView1.DataSource = rowList;
listView1.DataBind();
}
甚至創建一個ObjectDataSource
並以聲明方式綁定。
然後,在每次回發後,可以讀取POSTed值的列表並將其放回到數據庫中。
ASP.NET Web窗體綁定始終有效,並且由於自動視圖狀態管理,特定的方案甚至比手動的,類似MVC的狀態管理更簡單。例如,在listview中提供的插入和編輯模板很容易切換,這需要在普通的MVC中做一些工作(儘管你對發生的事情有很多更好的控制)。
您是否嘗試過使用代碼隱藏文件並將邏輯放入page_load? –
@DigitalD想到了它,但我不想手動設置每個值,如果我不必。這就是我要做的事情,如果沒有什麼「更乾淨」的事情要做,儘管 –
MVC具有內置模型綁定器的強大功能,普通的ASP.net web表單卻沒有。 –