更清晰的方法在.aspx页面中编写内联c#

时间:2011-01-14 17:36:25

标签: asp.net inline-code

由于本篇文章中可能不值得一提的原因,我决定停止使用ASP.NET控件,只需对我的.aspx页面使用常规HTML控件。因此,为了动态生成HTML,我使用c#inline到.aspx来做我需要做的事情。

例如:此.aspx代码段显示了我如何动态创建< select>元素所在的<选项>通过循环遍历对象的通用列表来驱动元素。

<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而不使用ASP.NET控件?

3 个答案:

答案 0 :(得分:7)

为什么不将逻辑放入方法并调用此方法?

string GetEntityList()
{
// ...
}

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

答案 1 :(得分:2)

一种常见的方法是通过XSLT进行XML。也就是说,您的代码组装一个XML文档,加载一个合适的XSLT转换并发送结果。

答案 2 :(得分:2)

返回HTML字符串的实用程序方法可以帮助解决这个问题,类似于ASP.NET MVC中的HTML帮助程序。