![](/img/trans.png)
[英]System.NullReferenceException: „Object reference not set to an instance of an object.” problem
[英]System.NullReferenceException: Object reference not set to an instance of an object. throwing error
在此行上引發此錯誤Edit_English.Text = aEdit_English; 在以下代碼中...
protected void btnEdit_Click(object sender, EventArgs e)
{
Button EditButton = (Button)EditLoginView.FindControl("EditButton");
Button SaveButton = (Button)EditLoginView.FindControl("SaveButton");
TitleLanguage.ActiveViewIndex = 2;
LanguageView.ActiveViewIndex = 2;
EditButton.Visible = false;
SaveButton.Visible = true;
TextBox Edit_English = (TextBox)ContentLoginView.FindControl("Edit_English");
TextBox Edit_French = (TextBox)ContentLoginView.FindControl("Edit_French");
TextBox Edit_FrenchT = (TextBox)TitleLoginView.FindControl("Edit_FrenchT");
TextBox Edit_EnglishT = (TextBox)TitleLoginView.FindControl("Edit_EnglishT");
Edit_English.Text = aEdit_English;
Edit_French.Text = aEdit_French;
Edit_EnglishT.Text = aEdit_EnglishT;
Edit_FrenchT.Text = aEdit_FrenchT;
}
這是頁面標記以及它。 當我在Visual Studio中鍵入內容時,訪問contentloginview是沒有問題的。
<asp:MultiView ID="LanguageView" runat="server">
<asp:View ID="English" runat="server"><asp:Label ID="en_content" runat="server"/></asp:View>
<asp:View ID="French" runat="server"><asp:Label ID="fr_content" runat="server"/></asp:View>
<asp:View ID="Edit" runat="server">
<asp:LoginView ID="ContentLoginView" runat="server">
<LoggedInTemplate>
<asp:TextBox ID="Edit_English" runat="server" TextMode="MultiLine" />
<asp:TextBox ID="Edit_French" runat="server" TextMode="MultiLine" />
</LoggedInTemplate>
</asp:LoginView>
</asp:View>
發生此錯誤是因為沒有aEdit_English字符串變量(或其他可以使用.ToString()轉換的對象)。 aEdit_English為空。
我建議嘗試定位該變量的聲明位置,並確保將其包含在適當的范圍內。
TextBox Edit_English = (TextBox)ContentLoginView.FindControl("Edit_English");
該行返回null,並且假定已正確找到它。
FindControl
僅搜索直接在其下調用FindControl
的控件。 在這種情況下, ContentLoginView
。 LoggedInTemplate
可能是事情的關鍵所在。
問題:設計頁面中沒有ID為Edit_EnglishT
控件。
因此下面的語句中的Edit_EnglisT
變為null
。
TextBox Edit_EnglishT = (TextBox)TitleLoginView.FindControl("Edit_EnglishT");
當您嘗試調用任何成員(例如Text
屬性)時,都會拋出上述Excetion。
解決方案:在嘗試將值分配給Edit_EnglishT
控件之前,只需驗證是否確實找到了它即可。
嘗試這個:
if(Edit_EnglishT != null)
Edit_EnglishT.Text = aEdit_EnglishT;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.