Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 上下文。项值为空_Asp.net_Vb.net_Null - Fatal编程技术网

Asp.net 上下文。项值为空

Asp.net 上下文。项值为空,asp.net,vb.net,null,Asp.net,Vb.net,Null,在一个页面上,我们有一个提交按钮,点击它我们会得到错误,因为m_strPageDefinition有空值。以下是更多信息的代码。只有在某些情况下,也只有在生产中,我们才会将m_strPageDefinition的值设置为null,这会导致问题。有人知道为什么m_strPageDefinition是空的吗 你应该考虑如何更一致地处理MyStPrPGEAR定义。为什么访问的是私有变量,而不是始终使用属性设置器?e、 g Private m_strPageDefinition As String P

在一个页面上,我们有一个提交按钮,点击它我们会得到错误,因为m_strPageDefinition有空值。以下是更多信息的代码。只有在某些情况下,也只有在生产中,我们才会将m_strPageDefinition的值设置为null,这会导致问题。有人知道为什么m_strPageDefinition是空的吗


你应该考虑如何更一致地处理MyStPrPGEAR定义。为什么访问的是私有变量,而不是始终使用属性设置器?e、 g

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声明中所包含的缺失的其他内容。请原谅,VB.NET不是我编写代码时使用的语言,因此格式/结构可能有点不正确。

我认为问题在于:

m_strPageDefinition = MyHiddenXMLString.Value
更具体地说:MyHiddenXMLString.Value可能为null

我不知道您在哪里声明了MyHiddenXMLString,但是将其设为隐藏变量input type=hidden.怎么样。。在aspx端,并在页面第一次加载时设置其值

然后,您就知道价值将始终存在,并且易于访问


hth

您在哪里设置上下文。ItemsMyXmlString?MyHiddenXMLString已是隐藏变量输入类型=隐藏。不知何故,在第一页加载期间,值并没有保存在其中,这可能是因为Context.ItemsMyXmlString具有空值。好吧,我想我同意你的看法。。现在,m_strPageDefinition为null而非null的唯一方法是,如果在调用隐藏变量后从未设置它。Value将返回string,因此,如果m_strPageDefinition为null而不是,这意味着:如果我们正在查看Page_Load的Else中的代码:m_strPageDefinition=MyHiddenXMLString.Value。那么m_strPageDefinition必须至少为,除非我们试图在回发页面加载开始之前检索m_strPageDefinition。在页面的代码中是否还有其他位置尝试检索m_strPageDefinition或MyXMLString?您建议的解决方案将不会在第一页加载时起作用,并且不会回发MyHiddenXMLString。Value的值为null/空。让我再详细阐述一下这个问题。当用户在页面上输入一些数据并单击Submit按钮时,将获取并使用隐藏变量中的值。当隐藏变量没有值时,问题就出现了。那么唯一的问题就是为什么隐藏变量没有值。找到的唯一可能的原因是Context.ItemsMyXmlString有时在生产环境中具有空值。我从来没有重现过这个错误:
m_strPageDefinition = MyHiddenXMLString.Value