多言語プロジェクトにURLルーティングを実装しました。リンクは次のようになります。
1>URLルーティングを使用http://www.example.com/Default.aspx?page=1&Language=en-US2>URL ルーティングを使用http://www.example.com/1/en-US
3>および3番目のシナリオは、http://www.example.com/Default.aspxまたはhttp://www.example.comです。
クエリ文字列がnullであるか、RouteData値がnullであるかを確認できます
しかし、3つのケースでは、ブラウザのデフォルト言語を検出し、それに応じてリダイレクトする必要があります。
コードを次のように記述した場合
if (!string.IsNullOrEmpty(Request["Language"]))
{
lang = Request["Language"].ToString();
}
if (!string.IsNullOrEmpty(HttpContext.Current.Request.RequestContext.RouteData.Values["Language"].ToString()))
{
lang = HttpContext.Current.Request.RequestContext.RouteData.Values["Language"].ToString();
}
ルートデータがnullの場合、次のエラーが発生しますObject reference not set to an instance of an object
trycatchブロックなしでこのステートメントにnull例外を処理させるにはどうすればよいですか?
HttpContext.Current.Request.RequestContext.RouteData.Values["Language"].ToString();