在DropDownList1.SelectedItem.Value抛出Nullpointerexception

时间:2013-01-18 06:54:22

标签: c# asp.net nullpointerexception

页面加载时我收到Nullpoint异常。我该如何预防?

protected override void InitializeCulture() 
{ 
    base.InitializeCulture();
    if (DropDownList1.SelectedItem.Value != null) // NULL POINT EXCEPTION THROWN HERE
    {
       //
    }
} 

2 个答案:

答案 0 :(得分:0)

通过确保DropDownList1和SelectedItem都不为空,或者将代码移动到非空值的位置,或者在检查DropDownList1之前更改if语句以检查DropDownList1或SelectItem是否为空来阻止NullReferenceException .SelectedItem.Value。

答案 1 :(得分:0)

InitializeCulture通常在页面生命周期中过早调用(在加载视图状态等之前,因此引用控件可能会有问题)。我假设可能想要使用drop-dwon列表中选择的值设置当前文化。为此,您应该嗅探Request.Form而不是使用控件引用。例如,

protected override void InitializeCulture() 
{ 
    base.InitializeCulture();
    var selectedCulture = Request.Form["DowndownListName"];
    if (!string.IsNullOrEmpty(selectedCulture))
    {
       ...
    }
}

DowndownListName 应该是服务器端控件的UniqueID(以及呈现的html源中呈现的select元素的name属性)。我建议使用html控件(而不是服务器控件)来获得一个可以在源代码中进行硬编码的静态名称。