检测浏览器语言并避免无引用异常

时间:2011-04-18 11:24:50

标签: c#

我想检测浏览器语言,以便在人们连接到我的网站时切换语言。 但是当用户没有填写浏览器选项中的语言时,我总是使用

获得空值
string browserlanguage = Request.UserLanguages[0]

如何避免错误“对象引用未设置为对象的实例。”

2 个答案:

答案 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();