作为一个巨大的 XSL 粉丝,我很高兴在 ASP.NET 上使用 xsl 作为我们专有的 MVC 框架中的视图。模型中的对象在后台使用 .NET 的 xml 序列化程序进行序列化,我们使用非常原子的 xsl 模板来声明每个对象或属性应该如何转换。
例如:
<xsl:template match="/Article">
<html>
<body>
<div class="article">
<xsl:apply-templates />
</div>
</body>
</html>
</xsl:template>
<xsl:template match="Article/Title">
<h1>
<xsl:apply-templates />
</h1>
</xsl:template>
<xsl:template match="@*|text()">
<xsl:copy />
</xsl:template>
这种机制允许我们快速覆盖默认匹配模板,例如在列表中的最后一项或选定的项上匹配模板等。此外,.NET 中的 xsl 扩展对象允许我们只需要一点额外的抓地力. 可以拆分和包含公共共享模板。
然而
尽管我可以忽略 xsl 的冗长缺点(因为 Visual Studio 架构智能感知 + 片段真的很光滑,对 VS 团队的赞美),但模型中没有对强类型对象进行智能感知的缺点确实让我很烦恼。
我已经看到了 ASP.NET MVC + 用户控件的实际应用,并且真的开始喜欢它,但我想知道;
有没有一种方法可以在我们正在迭代的 XML 上获得某种智能感知,或者您是否知道一种提供 XSL 的自由和声明性但具有 webforms/usercontrols/asp.net 的强类型/智能感知优势的语言.mvc 视图?
(我可能知道答案:“不”,我很快就会发现自己在使用 Phil Haack 非常酷的 mvc shizzle ......)