我正在编写一个 C# 应用程序并遇到了同样的问题(asp:Xml 标记在回发之间不存在)。这是我将其保留在 C# 中的代码:
//.aspx Presentation
<asp:Xml ID="xmlFormDisplay" runat="server"></asp:Xml>
//.aspx.cs Code Behind
private string formXSLT
{
get { return ViewState["FormXSLT"].ToString(); }
set { ViewState["FormXSLT"] = value; }
}
private string formXML
{
get { return ViewState["FormXML"].ToString(); }
set { ViewState["FormXML"] = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
...
}
xmlFormDisplay.TransformSource = formXSLT;
xmlFormDisplay.DocumentContent = formXML;
}
我不是一个 VB 开发人员,但这应该可以工作(或非常接近):
//.aspx Presentation
<asp:Xml ID="xmlFormDisplay" runat="server"></asp:Xml>
//.aspx.vb Code Behind
Private Property FormXSLT As String
Get
Return ViewState["FormXSLT"].ToString()
End Get
Set(value As String)
ViewState["FormXSLT"] = value
End Set
End Property
Private Property FormXML As String
Get
Return ViewState["FormXML"].ToString()
End Get
Set(value As String)
ViewState["FormXML"] = value
End Set
End Property
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
...
End If
xmlFormDisplay.TransformSource = formXSLT
xmlFormDisplay.DocumentContent = formXML
End Sub