0

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

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

2 回答 2

0

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

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

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

于 2013-01-18T07:18:03.550 回答
0

您可以通过确保 DropDownList1 和 SelectedItem 都不为空,或者将代码移动到它们不为空的点,或者更改 if 语句以检查 DropDownList1 或 SelectItem 是否为空,然后再检查 DropDownList1.SelectedItem 来防止 NullReferenceException。价值。

于 2013-01-18T06:58:03.363 回答