如何处理ASP.NET WEb表单和代码隐藏文件中的多个复选框

如何处理ASP.NET WEb表单和代码隐藏文件中的多个复选框,asp.net,Asp.net,以下是.aspx web表单中的代码处理一组多个复选框的最佳方法是什么。 这是代码隐藏文件是否有更好的方法处理多个复选框 protected void SaveEmployee() { Employee model = new Employee(); if (nonunionexempt.Checked) { model.EmployeeType = nonunionexempt.Value;

以下是.aspx web表单中的代码处理一组多个复选框的最佳方法是什么。


这是代码隐藏文件是否有更好的方法处理多个复选框

  protected void SaveEmployee()
     {
         Employee model = new Employee();

         if (nonunionexempt.Checked)
         {
            model.EmployeeType = nonunionexempt.Value;
         }
         if (nonunionexempt.Checked)
         {
            model.EmployeeType = nonexempthourly.Value;
         }

          IValueProvider provider = new  FormValueProvider(ModelBindingExecutionContext);
         if (TryUpdateModel<Employee>(model, provider))
         {
             LoaRepository.saveData(model);               
         }
        else
        {
            throw new FormatException("Could not model bind");
        }
    }
受保护的void SaveEmployee()
{
员工模型=新员工();
如果(非一致性豁免检查)
{
model.EmployeeType=ununionexempt.Value;
}
如果(非一致性豁免检查)
{
model.EmployeeType=nonexempthourly.Value;
}
IValueProvider=新的FormValueProvider(ModelBindingExecutionContext);
if(TryUpdateModel(model,provider))
{
LoaRepository.saveData(模型);
}
其他的
{
抛出新FormatException(“无法模型绑定”);
}
}

如果可以使用ASP.NET复选框控件而不是输入标记,则不需要If语句。在代码隐藏中,使用checkBoxID.Checked属性,该属性将返回true或false。

首先,您的代码听起来很好而且干净。但是如果我是你,我会使用web控件而不是HTML控件。此外,我认为即使不使用web控件,也不需要编写if语句。只需指定值为true或false的“checked”属性。最后,如果在web用户控件中嵌入复选框,那么在多次使用的情况下,这将带来有价值的帮助,当然还有更好的维护。希望有帮助,祝你好运

更好?只是好奇这对你意味着什么?对我来说,这似乎是非常可读和简单的代码。有超过15个复选框。只是想知道有比在每个复选框中使用if语句更好的解决方案。谢谢。你有一个复制/粘贴错误-第二个如果在我的头上-使整个事情事件驱动,当你调用SaveEmployee时,你应该只是获取值,而不必检查复选框的条件。雇员应该在每次单击时单击一些模仿雇员或服务器端的对象客户端时更新。你必须弄清楚如何最好地实现这一点。请记住,服务器端实现将需要某种类型的持久性。对于runat=server和Asp.net webforms范例,我认为您确实不想这样做。对我来说似乎很好。持久性伴随viewstate而来。
  protected void SaveEmployee()
     {
         Employee model = new Employee();

         if (nonunionexempt.Checked)
         {
            model.EmployeeType = nonunionexempt.Value;
         }
         if (nonunionexempt.Checked)
         {
            model.EmployeeType = nonexempthourly.Value;
         }

          IValueProvider provider = new  FormValueProvider(ModelBindingExecutionContext);
         if (TryUpdateModel<Employee>(model, provider))
         {
             LoaRepository.saveData(model);               
         }
        else
        {
            throw new FormatException("Could not model bind");
        }
    }