2012-05-10 38 views
3

RouteData.Values戻るとNullReferenceExceptionクエリ文字列が存在していない私は、以下の文のヌル例外エラーを取得するなどのルーティングURLを使用しているとき、それはクエリ文字列に存在しない場合、私は以下のステートメントのためとNullReferenceExceptionを処理するにはどうすればよい

string lang = RouteData.Values["Language"].ToString(); 

エラーの詳細

説明現在のWeb要求の実行中に、未処理の例外が発生しました。エラーの詳細とコード内のどこで発生したのかについては、スタックトレースを参照してください。

例外の詳細:System.NullReferenceException:オブジェクト参照がオブジェクトのインスタンスに設定されていません。

答えて

4

RouteDate.Values ["Language"]がnullで、インスタンスメソッドの.ToStringを適用しているため、この例外が発生しています。
ヌル

string lang=""; 
if(RouteData.Values["Language"] != null) 
     lang = RouteData.Values["Language"].ToString(); 
+0

@Thanksそれは私が使用して働いた!string.IsNullorEmptyも私にエラーを与えていた。 – Learning

1

をチェックするためには、これをしようとした場合だけ追加:.NETサポートの

string lang = RouteData.Values["Language"] != null 
        ? RouteData.Values["Language"].ToString() 
        : String.Empty; 
3

新しいバージョン:

string lang = (RouteData.Values["Language"] ?? String.Empty).ToString(); 

また、他のデータ型のための便利な:

int langId = Convert.ToInt32(RouteData.Values["LanguageId"] ?? 0);