ASP.NET MVC与XSL

时间:2020-03-05 18:46:24  来源:igfitidea点击:

有人(也许是XSL迷吗?)可以帮助我找到在ASP.NET MVC上使用XSL处理网页上的数据表示的任何优势吗?

两种选择是:

  • 带有XSL的ASP.NET(MVC / WebForms)从数据库中获取数据并将其转换为XML,然后使用XSL模板将其显示在不同的页面上。
  • ASP.NET MVC以C#对象(或者LinqToSql / EF对象)的形式从数据库中获取数据,并在MVC页面上以内联代码显示它们。

XSL的主要好处是可以在许多不同的页面(如WebControls)上一致地显示数据。因此,如果我错了,请纠正我,ASP.NET MVC可以以相同的方式使用,但要使用强类型对象。请帮助我看看XSL是否有任何好处。

解决方案

回答

如果仅显示DB XSL模板中的数据可能是一个方便的解决方案,但是如果我们要处理用户交互的话。嗯...我认为它根本无法维护。

回答

使用XML转换时,我总是发现两个主要问题:

首先,它们往往很慢,必须对整个XML文件进行解析和验证,然后才能对其进行任何处理。作为XML,它也过于冗长,因此比需要的大。

其次,对于XmlSpy帮助之类的自定义工具进行编码,转换的工作方式有点麻烦,但与大多数开发人员所习惯的相比,它仍然是一个不同的模型。

目前,MVC速度非常快,看起来非常有前途,但是在整个代码中确实受到传统的Web开发的困扰,即<%%和%>蜂刺。使用XML转换可以避免这种情况,但是很难阅读和维护。

回答

我过去曾经使用过这种技术,在我目前的工作场所中有一些应用在使用它。 (我会承认,我并不完全喜欢它,但我会扮演魔鬼的拥护者)确实,这是主要优势之一,推动这一想法可以说是一件很整洁的事情。我们可以动态地动态创建xsl,并一时兴起地更改页面的外观。是否可以通过其他方法来做到这一点...是的,但是构建一个程序来动态修改xml / xsl文档真的很容易。

如果我们考虑使用XSL将一个xml文档转换为另一个xml文档并将其显示为html(这实际上就是我们正在做的事情),那么我们正在打开系统以允许其他程序通过XML访问页面上的数据。我们可以通过其他方法执行此操作,但是使用xsl转换会强制其每次输出xml。

我会以这种方式创建系统而轻率地尝试。我们会发现很多意想不到的陷阱,如果我们不太了解xsl,那么学习曲线也会很困难。

回答

我可以看到使用XSLT转换数据并将其显示给用户的主要好处如下:

  • 数据已经是XML格式
  • 数据遵循定义明确的架构(这使使用XMLSpy之类的工具更加容易)。
  • 数据需要转换为多种不同的输出格式,例如PDF,WMP和HTML

如果这是数据的唯一输出,并且不是XML格式,则XSLT可能不是最佳解决方案。

同样,如果需要用户交互(例如,数据编辑),那么无论如何我们最终都会使用后端代码来处理更新,因此可能证明一种技术太过复杂了……

回答

Jafar Husain在他的Pretty XSL提议中提供了一些优势,主要是缓存样式表以增加页面负载并减小数据大小。史蒂夫·桑德森(Steve Sanderson)在这里提出了一种使用JavaScript作为控制器的略有不同的方法。

另一种类似的方法是使用XForms,尽管对它的最佳支持是通过JavaScript库。

回答

如果要使用XSLT和ASP.MVC,请检查此内容

http://www.bleevo.com/2009/06/aspnet-mvc-xslt-iviewengine/