在页面上我们有提交按钮,点击它时我们收到错误,因为m_strPageDefinition具有空值。以下是它的代码,以获得更多洞察力。只有在生产中,我们才会将m_strPageDefinition
的值视为null
,这会导致问题。有谁知道为什么m_strPageDefinition
即将到来null
。
Private m_strPageDefinition As String
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
If (Not Context.Items("MyXmlString") = Nothing) And (Not Context.Items("mFormID") = Nothing) Then
MyXMLString = Context.Items("MyXmlString")
MyHiddenXMLString.Value = MyXMLString
End If
Else
m_strPageDefinition = MyHiddenXMLString.Value
End If
End Sub
Private Property MyXMLString()
Get
Return m_strPageDefinition
End Get
Set(ByVal value)
m_strPageDefinition = value
End Set
End Property
答案 0 :(得分:0)
您应该考虑更加一致地解决m_strPageDefinition问题。您为什么访问是私有变量而不是始终使用Property setter?例如
Private m_strPageDefinition As String
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
If (Not Context.Items("MyXmlString") = Nothing) And (Not Context.Items("mFormID") = Nothing) Then
MyXMLString = Context.Items("MyXmlString")
MyHiddenXMLString.Value = MyXMLString
Else
MyXMLString = MyHiddenXMLString.Value
End If
Else
MyXMLString = MyHiddenXMLString.Value
End If
End Sub
Private Property MyXMLString()
Get
Return m_strPageDefinition
End Get
Set(ByVal value)
m_strPageDefinition = value
End Set
End Property
我相信你的问题来自我在Not IsPostBack语句中包含的遗漏的“Else”。请原谅我VB.NET不是我编写的语言,因此格式/结构可能会有所不同。
答案 1 :(得分:0)
我认为问题在于:
m_strPageDefinition = MyHiddenXMLString.Value
,更具体地说:MyHiddenXMLString.Value
可能为空。
我无法弄清楚你在哪里声明MyHiddenXMLString,但是如何在aspx端将其设为隐藏变量(输入类型=“隐藏”..)并在第一次加载页面时设置它的值。
然后你知道价值将永远存在并且易于访问。
HTH