【问题标题】:What are the benefits of XSL over standard MVC3 Views syntax?与标准 MVC3 视图语法相比,XSL 有什么好处?
【发布时间】:2012-09-04 08:18:01
【问题描述】:

我正在开发一个现有的 MVC3 应用程序。通常在处理 MVC3 项目时,我希望在视图中看到 HTML 和 MVC3 标记 (.cshtml)。

但是,使用此应用程序,每个视图只能调用XSLTEngine.Raw()。查看这段代码,这是对 XSL 文件的调用,这些文件包含类似 XML 的语法,其中包含看似呈现为 HTML 的元素(可能是通过 XSLTEngine.Raw() 方法)。

将此内容存储在 XSL 文件中而不是视图文件中的 HTML/MVC3 语法有什么好处?

【问题讨论】:

  • 您不仅可以将 XML 数据用于 Web UI?
  • 通常的好处是建筑师能够在很长一段时间内收取高得离谱的咨询费。哦,你的意思是应用程序的好处?那我不知道;)
  • @Oded 我相信应用程序正在使用 XML 数据。但是,我不明白使用 XSL 文件如何允许您将 XML 数据用于 Web UI 以外的其他用途。当然这可以从控制器完成吗?
  • 坦率地说,没有足够的上下文来确定原因。 XSLT 从哪里获取要转换为 HTML 的 XML 数据?这个 XML 是否在其他地方使用?它是否来自遗留系统?
  • 这就是我的观点。您需要一个额外的步骤来转换为模型。使用 XSLT,您可以跳过它(并重用现有的 XSLT...)。再一次 - 这听起来像是一个捷径,无需使用 MVC 框架即可迁移到 MVC...

标签: asp.net asp.net-mvc-3 xslt


【解决方案1】:

很难说。应用程序可能正在执行 XSLT 非常适合的工作(它是一种针对某些任务进行了优化的语言);或者它可能正在重用 XSLT 中已经存在的代码;或者它可能是由具有 XSLT 技能但没有时间学习不同技术的人编写的;或者它可能是由对 XSLT 有宗教信仰的人编写的(许多程序员对特定的编程语言有宗教信仰,我的意思是他们根据审美标准而不是科学标准来选择它;XSLT 也不例外)。

这些答案与您对“为什么 X 用 L 写成?”形式的任何问题的答案完全相同。其中 X 是软件组件,L 是编程语言。

【讨论】:

  • 感谢您的回复。 XSLT 应该优先于标准 MVC3/Razor 技术并没有什么特别的原因
  • 您对“标准”一词的使用似乎预先判断了答案。我想看看代码正在做的工作。在某些任务中,XSLT 是比任何其他方法更好的方法。还有其他任务不是。
  • 感谢 Michael,我对 MVC3 还很陌生,我看到的任何示例都使用 Razor 和 HTML 标记,因此我使用了“标准”这个词。然而,因为,我一直在对 XSLT 进行更多研究,如果有任何有用的教程或文档可以帮助我更好地理解语法,我将不胜感激
【解决方案2】:

如果这是使用 XML 作为数据源的旧应用程序的一个端口,为了转换为 MVC,最简单的方法是重用 XML 数据并使用 XSLT 对其进行转换。

说实话,移植这样的应用程序根本没有意义(本质上,它是在不同框架上的相同应用程序),除非可以再也找不到熟悉旧技术的开发人员了。

【讨论】:

  • 感谢 Oded,与标准 HTML / Razor 相比,使用 XSL 是否有任何性能优势?
  • @Curt - 我不希望有。这是一个额外的步骤,并且 XSLT 是 CPU 密集型的。
  • 谢谢,这有助于消除我对使用 XSL 的困惑。我开始怀疑我对 MVC3 Razor 控件的研究是否已经被弃用了!
【解决方案3】:

也许目的是为终端客户端平台/设备提供更广泛的支持?

尽管您可能没有使用您习惯的传统 MVC 功能,但您仍然可以使用控制器 - 我认为这非常整洁,并且可以轻松处理(和组织)页面请求/响应。更不用说对参数映射的强大内置支持(以及可能的模型绑定,但不确定如何/是否可以与您的 XSL 一起使用)

刚刚快速浏览了this short presentation,它强调了 XSLT 相对于 HTML 的一些主要优势 - 看看吧!

【讨论】:

  • +1 感谢您的链接!我整天都在寻找这样的东西!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-01
  • 2018-12-22
  • 2014-12-06
  • 2010-11-25
  • 1970-01-01
相关资源
最近更新 更多