2

こんにちは、日付が必要なレポート モデルがあります。日付は、今日、昨日、または日付範囲のいずれかです。

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

このモデルはビューにバインドされています。Today、Yesterday、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>

ビューがポストバックされたときに、どのラジオ ボタンが選択されたかを取得するにはどうすればよいですか?

4

2 に答える 2

2

次のようにモデルを変更できます。

public enum DateType {
   Today,
   Yesterday,
   DateRange 
}

public class DateModel
{        
    public DateType DateType { get; set; }
    public DateTime StartDate { get; set; }
    public DateTime EndDate { get; set; }
}

そしてそれをビューで使用します:

@model DateModel    

@Html.BeginForm("ProcessForm") {    

    @* Populate radio *@

    @Html.RadioButtonFor(x => x.DateType , DateType.Today) Today
    @Html.RadioButtonFor(x => x.DateType , DateType.Yesterday) Yesterday
    @Html.RadioButtonFor(x => x.DateType , DateType.DateRange) DateRange

    @* Range *@

    @Html.TextBoxFor(x => x.StartDate ) Start date
    @Html.TextBoxFor(x => x.EndDate  ) End date

    <input type="submit" />
}

モデルをコントローラーに渡す

public ActionResult ProcessForm(DateModel model) { // here you get model from form
   // .. 
}
于 2013-07-02T13:48:26.070 に答える