由于本篇文章中可能不值得一提的原因,我决定停止使用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控件?
答案 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帮助程序。