让用户在ASP.NET MVC中选择一个单选按钮

时间:2016-12-27 14:02:14

标签: c# asp.net asp.net-mvc

我的模特是:

public class Survey 
{
    [Required(ErrorMessage ="You must select an OK Option")]
    public string Abduction { get; set; }

在视图中,我正在使用:

        <td style="vertical-align:top" Width="60%">Is this OK ?</td>
        <td>
            @Html.RadioButton("OK", "Yes") Yes @Html.RadioButton("Ok", "No") No

        </td>

我是否需要@Html.RadioButtonFor或我错过了其他内容,因为单选按钮验证未激活。

对于提交按钮,我只做

<button type="submit" class="btn btn-primary">Sign up</button>

和BeginForm是: -

@using(Html.BeginForm("addsurvey","survey"))
{

2 个答案:

答案 0 :(得分:0)

您应指定属性Abduction的名称并使用:

<td style="vertical-align:top" Width="60%">Is this OK ?</td>
<td>
    @Html.RadioButtonFor(m => m.Abduction, "Yes") @:Yes
    @Html.RadioButtonFor(m => m.Abduction, "No") @:No
</td>

<td style="vertical-align:top" Width="60%">Is this OK ?</td>
<td>
    @Html.RadioButton("Abduction ", "Yes") Yes 
    @Html.RadioButton("Abduction ", "No") No 
</td>

答案 1 :(得分:0)

该页面将提交,因为没有任何内容可以阻止它提交。然后,您可以检查ModelState.IsValid以查看提交的内容是否可用/允许/有效,如下所示:

public ActionResult addsurvey(Survey srv)
{
    if (ModelState.IsValid)
    {
        // OK: Save, Proceed and/or Redirect
    }
    else
    {
        // not OK: show View again
        return View(srv);  // or: View("ViewName", srv);
    }
}

在视图中,请务必使用@Html.ValidationSummary(),它会向用户显示ModelState无效的原因。