未选择任何值时 RadioButtonList 中的 NullException 错误

NullException Error in RadioButtonList when no value is selected

我正在尝试找到一种方法,当用户没有 select 下拉列表中的值时抛出错误。我尝试了这里提供的许多解决方案。但是none好像work.This是我的代码

protected void Button1_Click(object sender, EventArgs e)
   {
       if (RadioButtonList1.SelectedItem.Value == null)
            {
              //Throw error to select some value before button click
            } 

       if (RadioButtonList1.SelectedItem.Value == 'male')
           {
              //Step1
           }
       if (RadioButtonList1.SelectedItem.Value == 'female')
           {
              //Step2
           }
    }

尝试用

替换
 if (RadioButtonList1.SelectedIndex == -1)

但这也行不通。有什么想法吗?

引自评论:

(rakesh) The actuall code executes only when a radiobutton is selected, when when user clicks without a selection i get the error - Object reference not set to an instance of an object...and NO "RadioButtonList1.SelectedItem.Value" == null does not work

这就是你的方式!错误原因是:RadioButtonList1.SelectedItem为空。所以没有。所以:只需检查

if (RadioButtonList1.SelectedItem == null) {...}

编辑以澄清讨论:

if (RadioButtonList1.SelectedItem == null) 
{
    //Throw error to select some value before button click
} 
else if (RadioButtonList1.SelectedItem.Value == "...") 
{
   ....
}

将选中的项目放入变量中,调试起来会更方便:

var selectedItem = RadioButtonList1.SelectedItem;
if (selectedItem == null)
{
    throw new Exception("Please select");
} 
else if (selectedItem.Value == "male")
{
    // step 1
}

单选按钮是特定的。如果未选择任何内容,则没有 selectedItem,因此没有不存在的对象的值。

编辑:将调试器点放在第一行,var selectedItem =.. 这样你就可以在悬停时知道它的确切值。

Edit2:始终检查您的对象是否不为空。您在评论中的错误是由于当实际对象不存在时您立即尝试访问对象 属性。