經(jīng)測試System.Web.UI.HtmlControls下的HtmlForm類,也就是我們在傳統(tǒng)的asp.net中使用的Form表單對象,不適合動態(tài)生成Html代碼。
于是自定義了一個簡單的HtmlForm容器控件,只需要幾行代碼。看來Asp.net在封裝Html元素方面還是很有優(yōu)勢的,微軟為我們定義了
大量的基礎(chǔ)結(jié)構(gòu),很容易擴(kuò)展使用。
public class myHtmlForm:HtmlContainerControl { public myHtmlForm() : base("form") { this.Attributes.Add("method", "post"); } public string Action { set { Attributes.Add("action", value); } } }
使用很簡單,直接new,然后向Controls集合中添加控件即可。
myHtmlForm form = new myHtmlForm(); form.ID = "myform"; form.Action = "test.aspx"; HtmlInputHidden hidf= new HtmlInputHidden(); hidf.ID = hidf.Name = "hidden"; form.Controls.Add(hidf);
最后在View中,輸出HTML代碼到響應(yīng)流。
form.RendControl(Writer);
結(jié)論:
動態(tài)生成HTML表單就是這么簡單明了。我以前可是自己拼接過HTML,然后Write啊。善于利用框架提供的類可以有效的提高開放效率,
并且使代碼的可讀性良好。尤其是在做表格控件時,善用System.Web.UI.WebControls.Table控件,會很有幫助。很想知道PHP或其他
語言是否也有這些好用的基礎(chǔ)設(shè)施呢?
新聞熱點(diǎn)
疑難解答
圖片精選