2011-01-14 43 views
0

由於在這篇文章中可能不值得提及的原因,我決定停止使用ASP.NET控件,並簡單地爲我的.aspx頁面使用常規的HTML控件。因此,爲了動態生成HTML,我使用c#內聯到.aspx來完成我需要做的事情。更清晰的方式在.aspx頁面寫入內聯c#

例如:這個的.aspx片斷顯示瞭如何我動態創建一個<選擇>元素,其中<選項>元件用對象的泛型列表循環驅動。

<select name="s"> 
<option value="-9999">Select an entity...</option> 
<% foreach (MyEntity e in this.MyEntities) 
{%> 
<option <% if (MyEntityInScope.ID == e.ID) 
{ %>selected<%} %> value="<%= e.ID %>"> 
<%= e.Name%></option> 
<%} %> 
</select> 

功能性方面,我更喜歡這種創建HTML的方法(我覺得更多的是控制如何生成HTML與ASP控件)。但是,在語法上(和視覺上),我覺得這很麻煩(也很醜陋)。

是否有一種「更好」的方式(另一種語法)來動態生成HTML w/out訴諸使用ASP.NET控件?

+2

聲音,你想用「ASP.NET MVC」代替。 – codymanix 2011-01-14 17:41:31

+2

看看新的.Net MVC項目類型。這聽起來像它更符合你的想法。 http://www.asp.net/mvc – David 2011-01-14 17:41:48

回答

7

你爲什麼不把你的邏輯放到方法中並調用這個方法?

string GetEntityList() 
{ 
// ... 
} 

<select name="s"> 
<option value="-9999">Select an entity...</option> 
<%= GetEntityList() %> 
</select> 
2

通過XSLT的一種常見方法是XML。也就是說,您的代碼會組裝一個XML文檔,加載適當的XSLT轉換併發送結果。

2

返回HTML字符串的實用方法可以幫助解決這個問題,類似於ASP.NET MVC中的HTML助手。