以下是.aspx网络表单中的代码处理一组多个复选框的最佳方法是什么。
<input id="nonunionexempt" type="checkbox" value="0" name="employeeType" tabindex="8" runat="server" />
<input id="nonexempthourly" type="checkbox" value="1" name="employeeType" tabindex="9" />
<input id="eleven99" type="checkbox" value="2" name="employeeType" tabindex="10" />
<input id="nysna" type="checkbox" value="3" name="employeeType" tabindex="11" />
<input id="cir" type="checkbox" value="4" name="employeeType" tabindex="12" />
以下是文件背后的代码有没有更好的方法来处理多个复选框?
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");
}
}
答案 0 :(得分:0)
如果您可以使用ASP.NET Checkbox控件而不是输入标签,那么您将不再需要if语句。在代码后面使用checkBoxID.Checked属性,它将返回true或false。
答案 1 :(得分:0)
首先,您的代码听起来很干净。但如果我是你,我会使用网页控件而不是HTML控件。此外,即使不使用Web控件,我也认为不需要编写if语句。只需指定'checked'属性,该属性的值为true或false。最后,如果将复选框嵌入到Web用户控件中,那么在多次使用的情况下,这可以带来有价值的帮助,当然还有更好的维护。希望它有所帮助,祝你好运!