0

ページに送信ボタンがあり、クリックすると m_strPageDefinition が null 値であるためエラーが発生します。以下は、より多くの洞察を得るためのコードです。m_strPageDefinitionasの値を取得するのは、本番環境でのみであり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
4

2 に答える 2

0

m_strPageDefinition に対処する方法をより一貫させることを検討する必要があります。常に Property セッターを使用するのではなく、プライベート変数にアクセスしているのはなぜですか? 例えば

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 は私がコーディングする言語ではないため、形式/構造が少しずれている可能性があります。

于 2012-07-10T13:37:54.553 に答える