我想检测浏览器语言,以便在人们连接到我的网站时切换语言。 但是当用户没有填写浏览器选项中的语言时,我总是使用
获得空值string browserlanguage = Request.UserLanguages[0]
如何避免错误“对象引用未设置为对象的实例。”
答案 0 :(得分:9)
检查Request.UserLanguages != null
。
例如:
var l = Request.UserLanguages;
string browserlanguage = l ?? l[0] : "en";
// fall back to en, or set to "" or null.
修改(重新评论)如果上述操作失败,Request
本身也为空,这是不可能的(您可以检查Request != null
以确定吗? )。您之后的代码中是否有空引用?
答案 1 :(得分:6)
string lang = (Request.UserLanguages ?? Enumerable.Empty<string>()).FirstOrDefault();