Asp.net 生成具有文字和string.Format的干净标记
为了生成干净的标记,我经常使用类似以下代码:Asp.net 生成具有文字和string.Format的干净标记,asp.net,markup,literals,Asp.net,Markup,Literals,为了生成干净的标记,我经常使用类似以下代码: <asp:Literal ID="ltItem" runat="server"> <li class="{0}"><a href="{1}">{2}</a></li></asp:Literal> 其中一些优点是: 干净的html标记,没有ASP.Net Web表单id等 设计器可以在aspx中进行小的修改,而无需开发人员干预 代码是预编译的(与使用内联代码或数据绑定语句相反)
<asp:Literal ID="ltItem" runat="server">
<li class="{0}"><a href="{1}">{2}</a></li></asp:Literal>
其中一些优点是:
- 干净的html标记,没有ASP.Net Web表单id等
- 设计器可以在aspx中进行小的修改,而无需开发人员干预
- 代码是预编译的(与使用内联代码或数据绑定语句相反)
- 有点神秘
- 易碎-删除标记中的参数时,string.Format会引发异常
这是生成干净标记的常用方法吗?有更好的选择吗?数据绑定语法方法更可取吗?看来您正在与您的框架作斗争。ASP.NET web表单设计用于自动解析客户端ID,并允许基于属性的UI自定义,就像Windows表单一样。这些特性通常会将呈现的HTML弄得一团糟,但由于其可感知的好处,结果是可以容忍的
如果你没有意识到自己的好处,发现自己在与ASP.NET Web窗体方法作战,那么考虑另一个框架。使用不共享您的价值观和目标的框架是没有意义的
如果你想完全控制你渲染的HTML,考虑一下。控制HTML输出是它的既定目标之一。此外,它还设计用于强制分离关注点
如果您对非Microsoft框架开放,则有许多可用的框架,包括:- -受Ruby on Rails启发的框架
- -Java的Maverick框架的.NET端口
- 如果我错了,请纠正我,但使用MVC不会给您提供预编译代码,不是吗?
我在使用webforms时也这样做,但我在使用webforms时遇到了一些问题
...
lt.Text = string.Format(lt.Text,
cssClass,
item.Url,
Server.HtmlEncode(item.Caption)
);