0

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

例如:这个 .aspx 片段显示了我如何动态创建一个 <select> 元素,其中 <option> 元素是通过循环遍历对象的通用列表来驱动的。

<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 控件?

4

3 回答 3

7

为什么不把你的逻辑放到一个方法中,然后调用这个方法呢?

string GetEntityList()
{
// ...
}

<select name="s">
<option value="-9999">Select an entity...</option>
<%=  GetEntityList() %>
</select>
于 2011-01-14T17:45:03.987 回答
2

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

于 2011-01-14T17:38:37.520 回答
2

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

于 2011-01-14T17:44:44.453 回答