将模型绑定到单选按钮

Wes*_*een 2 asp.net-mvc razor

嗨,我有一个需要约会的报告模型.他的日期可以是今天,昨天或日期范围.

public class DateModel
{        
    public bool Today { get; set; }
    public bool Yesterday { get; set; }
    public bool DateRange { get; set; }
    public DateTime StartDate { get; set; }
    public DateTime EndDate { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

此模型绑定到视图.今天,昨天,DateRange和开始和结束日期的文本框的单选按钮.

<tr>
    <td>
        @Html.RadioButton("SelectedDate", "Yes", true, new { postData= "Today" }) Today
    </td>
</tr>
<tr>
    <td>
        @Html.RadioButton("SelectedDate", "No", false, new { postData= "Yesterday" }) Yesterday
    </td>
</tr>    
<tr>
    <td>
        @Html.RadioButton("SelectedDate", "No", false, new { postData= "CallDateRange" }) Call Date Range
    </td>
</tr>
Run Code Online (Sandbox Code Playgroud)

回发视图时,如何选择单选按钮?

Ste*_*n V 10

看看你的代码,总体来说可能有更好的方法.首先,创建一个可用的单选按钮类型/值的枚举:

public enum DateEnum {
    Today,
    Yesterday,
    DateRange
}
Run Code Online (Sandbox Code Playgroud)

然后修改你DateModel的使用枚举

public class DateModel
{        
    public DateEnum SelectedDate { get; set; }
    public DateTime StartDate { get; set; }
    public DateTime EndDate { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

最后,更新您的绑定视图,以便在使用时使用枚举 RadioButtonFor()

<tr>
    <td>
        @Html.RadioButtonFor(x => x.SelectedDate, DateEnum.Today) Today
    </td>
</tr>
<tr>
    <td>
        @Html.RadioButtonFor(x => x.SelectedDate, DateEnum.Yesterday) Yesterday
    </td>
</tr>    
<tr>
    <td>
        @Html.RadioButtonFor(x => x.SelectedDate, DateEnum.DateRange) Call Date Range
    </td>
</tr>
Run Code Online (Sandbox Code Playgroud)

然后在表单提交上,您将查看SelectedDate以确定用户选择了哪个单选按钮.