asp.net-mvc - 将模型绑定(bind)到单选按钮

标签 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; }
}

此模型绑定(bind)到 View 。 Today、Yesterday、DateRange 的单选按钮和 Start 和 End date 的文本框。

<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>

当回传 View 时,我怎样才能得到选择了哪个单选按钮?

最佳答案

查看您的代码,总的来说可能有更好的方法。首先,创建可用的单选按钮类型/值的枚举:

public enum DateEnum {
    Today,
    Yesterday,
    DateRange
}

然后修改您的 DateModel 以使用该枚举

public class DateModel
{        
    public DateEnum SelectedDate { get; set; }
    public DateTime StartDate { get; set; }
    public DateTime EndDate { get; set; }
}

最后,在使用 RadioButtonFor()

时更新您的 View 以使用枚举
<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>

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

关于asp.net-mvc - 将模型绑定(bind)到单选按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17426795/

相关文章:

c# - asp.net MVC 绑定(bind)特定模型导致发布请求出错

javascript - 如果用户单击浏览器取消按钮,隐藏加载 gif 的最佳方法是什么?

c# - 如何在 Blazor/Razor 中获取事件数据

javascript - 当字段大于 15 时,在 [HTTP POST] 之后打开 fancybox

c# - 在渲染页面中渲染页面

asp.net-mvc - 不支持关键字 : 'data source' .:使用 ObjectContext 和 LocalDB 的 EF 代码优先

asp.net-mvc - 极简主义的错误处理方法

html 选择下拉滚动条 - 仅当存在下拉框时

asp.net-mvc - 使用 Mono 和 MVC 4 的 View 出现错误

asp.net-mvc - 如何使无序列表出现在 MVC3 Razor 的 foreach 循环中?