我有一个 XSLT 转换来输出键/值对表:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="keys">
<table border="1">
<xsl:apply-templates select="key" />
</table>
</xsl:template>
<xsl:template match="key">
<tr>
<td>
<xsl:value-of select="@name" />
</td>
<td>
<pre>
<xsl:value-of select="." />
</pre>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
我目前正在使用它 <asp:Xml />
服务器控制。
asp.net 页面周期的动态性质使我认为可能可以生成实际的服务器端标记并获得某种动态代码生成功能。这是可能的/一个好主意吗?
因此 XSLT 将包含:
...
<asp:Label runat="server"><xsl:value-of select="@name" /></asp:Label>
...
注意:我提出问题的动机比其他任何事情都更学术。
最佳答案
你绝对可以做到这一点。
您需要在 PreInit PreInit 中执行此操作页面生命周期的阶段。我认为如果你不使用 viewstate,你也许可以在 PreLoad 中做到这一点,但我并不是 100% 相信这一点。
至于这是一个好主意,这取决于您为什么要这样做。
如果您只是为了这样做而这样做,那么这可能是一个坏主意:)那么您只会使您的应用程序变得过于复杂。如果它满足您的某些功能需求,那么它就是一个好主意,也是一个优雅的解决方案。 :)
补充:这是我不久前看到的一个网站,为您提供了一个示例。 XSLT To generate .NET tags
关于c# - 有没有办法获得来自 XSLT 转换 'on the fly' 的 asp.net 页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9460887/