當我嘗試使用「VIEW IN BROWSER」選項從VS 2008中的IDE打開頁面時,我收到"對象引用未設置爲對象實例"錯誤。未將對象引用設置爲對象的實例
的一段代碼我得到這個錯誤:
XResult = Request.QueryString["res"];
TextBox1.Text = XResult.ToString();
當我嘗試使用「VIEW IN BROWSER」選項從VS 2008中的IDE打開頁面時,我收到"對象引用未設置爲對象實例"錯誤。未將對象引用設置爲對象的實例
的一段代碼我得到這個錯誤:
XResult = Request.QueryString["res"];
TextBox1.Text = XResult.ToString();
這裏的問題是XResult
是null
當你打電話給ToString
它的代碼產生一個NullReferenceException
。你需要做一個明確的null
檢查
TextBox1.Text = XResult == null ? String.empty : XResult.ToString();
你的代碼是期待一個查詢字符串http://localhost:xxxx/yourapp?res=yourval
。它不在提供給瀏覽器的地址中。在項目屬性的網絡部分中,您可以提供適當的URL。當然,支持你的代碼是可取的。
這個錯誤可能是因爲REquest.QueryString方法沒有在url中找到「res」的值,所以當你試圖對一個null對象進行「toString」來完成那個exeption。
XResult已經是一個字符串,所以調用ToString是沒有必要的。這也應該解決你的問題。
如果你要打開的頁面沒有「資源」查詢字符串,那麼你需要包括零的支票,你用它做任何事情之前,考慮到這一點。
if (Request.QueryString["res"] != null)
{
XResult = Request.QueryString["res"];
TextBox1.Text = XResult.ToString();
}
這裏的問題是,XResult是空的,當你在調用它ToString
代碼產生NullReferenceException
。您需要通過執行明確的空檢查來對此進行解釋:
if (Request.QueryString["res"] != null)
{
XResult = Request.QueryString["res"];
TextBox1.Text = XResult.ToString();
}
。字符串上的ToString()不會引發錯誤。問題是XResult爲空,因爲它在查詢字符串中找不到「res」。 – 2011-03-04 19:40:54
它已經是一個字符串,對'.ToString()'的調用不是必需的,但它不能解決你的問題。 – Chev 2011-03-04 19:41:56
它將解決null引用異常,因爲調用null上的.ToString()將拋出異常。 – 2011-03-04 19:44:44