为了生成干净的标记,我经常使用类似于此的代码:
<asp:Literal ID="ltItem" runat="server">
<li class="{0}"><a href="{1}">{2}</a></li></asp:Literal>
在代码隐藏中:
...
lt.Text = string.Format(lt.Text,
cssClass,
item.Url,
Server.HtmlEncode(item.Caption)
);
一些优点是:
缺点:
因此我的问题是:
这是生成干净标记的常用方法吗?是否有更好的替代方案?数据绑定语法方法更可取吗?
答案 0 :(得分:2)
您似乎正在与您的框架作斗争。 ASP.NET Web表单旨在自动解析客户端ID,并允许感觉像Windows窗体的基于属性的UI自定义。这些功能通常会使呈现的HTML变得混乱,但由于感知到的好处,结果是可以容忍的。
如果您没有意识到这些好处并且发现自己正在与ASP.NET Web表单方法作斗争,请考虑另一个框架。使用不符合您的价值观和目标的框架是没有意义的。
如果您想完全控制渲染的HTML,请考虑ASP.NET MVC。控制HTML输出是其既定目标之一。此外,它旨在强制分离关注点。
如果您对非Microsoft框架持开放态度,可以使用以下内容:
答案 1 :(得分:0)
纠正我,如果我错了,但使用MVC不会给你预编译代码不是吗? 我在使用webforms时也是如此,我遇到了几个问题。