在ASP.NET Web Forms中使用XSLT

XSLT可以帮助你动态地生成代码,并且生成可扩展的、可维护的ASP.NET页面。
by Dan Wahlin

.NET平台为运用XSLT语言,把XML文件转化成不同的形式提供了极好的支持,如HTML、WML、flat-file等等。我最近已经碰到好几个人问:假定服务器控件很强大并容易使用,XSLT在ASP.NET页面中有什么作用。下面我将讲述你可以在Web Forms中如何使用XSLT。

如果你不熟悉ASP.NET服务器控件,那么它们是 随.NET SDK一起安装的一套类,允许程序员用面向对象的技术从最终用户显示和收集数据。这包括创建textboxes、radio buttons、checkboxes、drop-downs、labels、data grids等控件。就像它们的名字的含义一样,服务器控件是在服务器上执行和实现的,并根据访问的浏览器的性能可以生成不同的HTML。在服务器端生成的 XSLT结果被直接发送到访问客户,输出结果中的任何服务器控件代码实际上是不显示的,所以,你可以连同服务器控件一起使用XSLT吗?本文将详细地解答 该问题。

内容管理
显 示内容但并不要求最终用户输入数据的ASP.NET页面是个很好的例子,它说明了你在哪儿可以用XML和XSLT。仅通过写一个新的样式表(或者修改一个 现有的样式表),你就可以在多个设备上显示数据了。如果需要HTML窗体中的元素显示在一个页面中,你仍然可以用XSLT。然而,如果你用服务器控件作为 替代,你就不能用面向对象的技术访问这些控件(如textboxes或radio buttons)及其相关的值。

部分页面的生成
在ASP.NET 页面中,如果需要将内容/数据同服务器控件结合起来,你可以用XSLT生成部分页面。这么做使得为最终用户显示数据更灵活了,同时仍然运用服务器控件中的 面向对象的功能。通过把XSLT转化生成的结果同ASP.NET的缓存支持相结合,你可以创建更高级别的可扩展的和可维护的ASP.NET页面。

ASP.NET Web Form代码的生成
虽 然你不能用从XSLT转化生成的内容来动态地创建在服务器上实时显示的服务器控件(至少不包含动态编译技术),没有什么事情可以阻止你用XSLT来生成完 整的包含服务器控件的ASP.NET Web Forms。然而,XSLT转化的结果必须存在一个ASPX文件中,而不是把结果发给浏览器。然后,一个最终用户可以点击保存的ASP.NET 页面(当然,由于页面被编译,第一个用户会发现响应有些滞后),页面中的任何服务器控件都将生成适当的HTML结果。虽然在你需要瞬间动态地创建一个页面 时,该技术没多大用处,但在实际代码是动态地生成的大的站点中,该技术还是有用的。关于运用XSLT生成动态代码的情况,请访问FormBuilder.NET application

你有没有其它与.NET/XML相关的技巧想与人分享呢?或者你有没有不能解答的问题呢?把它们发到dwahlin@xmlforasp.net吧。


关于作者:
Dan Wanhlin著有XML for ASP .NET Developers(Sams出版),并创办了Wahlin咨询公司,主要致力于XML和Web Service咨询和培训。Dan也管理XML for ASP .NET Developers网站:www.XMLforASP.NET。更多信息请看www.xmlforasp.net/content.asp?content=dan
原文地址:https://www.cnblogs.com/huqingyu/p/310403.html