RouteData.Values当查询字符串不存在时返回NullReferenceException

我如何处理以下语句的NullReferenceException,因为如果在使用URL路由时查询字符串中不存在以下语句时出现空exception错误

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

错误详情

描述:执行当前Web请求期间发生未处理的exception。 请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

exception详细信息:System.NullReferenceException:未将对象引用设置为对象的实例。

您收到此exception是因为RouteDate.Values [“Language”]为null并且您正在应用实例方法.ToString。
只需添加一个if来检查null

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

较新版本的.NET支持:

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

对于其他数据类型也很方便:

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

试试这个:

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