所以,我的个人网站是在我编写的自定义博客引擎上运行的,我对此非常满意。但是,它使用了一个母版页,这意味着ASP.NET预先(没有充分理由)'ct100'到所有id ...例如:
<div id='menu'>
<ul>
<li id="ctl00_homeTab" class="active"><a href="/">Home</a></li>
<li id="ctl00_codeTab"><a href="/code/">Code / Projects</a></li>
<li id="ctl00_aboutTab"><a href="/about/">About Me</a></li>
<li id="ctl00_contactTab"><a href="/contact/">Contact</a></li>
</ul>
</div>
我想稍微美化标记,并将它们剥离出来,或者至少将它们重命名为更有意义的东西。由于Webforms相当易读,我想有办法做到这一点。我知道内容占位符充当命名容器,但在我的情况下,我只想拥有一个不错的ID,'master'而不是'ct100'将是一个开始。
虽然我很傻和肛门,但我想做的另一件事是在使用UserControls时修复标记的缩进。如果你看一下at my site,你会发现用户控件没有缩进并打破了源代码流。如果不通过漂亮的打印机运行页面输出,这可能无法修复......这将浪费时间。
不要告诉我切换到MVC。我已经对它进行了评估,并将坚持使用Webforms。
答案 0 :(得分:2)
说实话,我并没有看到通过大量工作来获得最少的标记美化的好处......虽然我以某种奇怪的方式欣赏你的欲望。
您的网站看起来很好 - 将精力放在浏览器中实际呈现的内容和最终用户的功能上。 :)
答案 1 :(得分:2)
虽然在这个时刻对你没什么用处,但是ASP .NET的下一个版本将允许你对你控件的输出id进行更多的控制。
在这篇博文中有一些很好的信息...
答案 2 :(得分:1)
这些控件前缀是ASP.NET在页面上找到控件的方式,因为...如果我没记错的话... viewstate / postback。我也讨厌这些前缀,但ASP.NET生成的JavaScript需要它们。
答案 3 :(得分:1)
是的,你可以通过使用ASP .NET 2.0控制适配器来做到这一点。控件适配器允许您修改现有服务器控件输出代码的方式,而无需更改ASPX文件中的任何代码。你可以在这里看到它是如何完成的:
这些适配器是基本设计的,允许使用带有.NET控件的CSS轻松使用表格,但它也可以用于您的目的。
答案 4 :(得分:0)
我想你可以联系一个ResponseFilter来美化......祝你好运。 ;)
答案 5 :(得分:0)
CSS Friendly Control Adapters?我在多个项目中使用它们并且对它们非常满意。他们甚至很好地转换为3.0,3.5。
menu adapter完全符合您的要求。