为什么RadioButtonFor userInput没有绑定到模型?

时间:2013-08-27 04:44:43

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

当用户选择radioButton时,IsSelected属性在回发时仍为false,为什么?

查看

enter image description here

@using (Html.BeginForm())
{
    <fieldset>
        <legend>UserChoice</legend>

        @Html.DisplayNameFor(model => model.IsSelected)
        @Html.TextBoxFor(model => model.FirstName)

        @Html.RadioButtonFor(uc => uc.IsSelected, false)

        <input type="submit" name="name" value="Submit Form" />
    </fieldset>
}

控制器

enter image description here

4 个答案:

答案 0 :(得分:1)

如果您有不同类型的选项,可以使用以下

实现这个的一个非常简单的方法就是这样

@Html.RadioButtonFor(modelItem =>item.SelectedOption, "Option1")
@Html.RadioButtonFor(modelItem =>item.SelectedOption, "Option2")
@Html.RadioButtonFor(modelItem =>item.SelectedOption, "Option3")

或者您也可以使用,

@Html.RadioButtonFor(modelItem =>item.SelectedOption, item.Option1)
@Html.RadioButtonFor(modelItem =>item.SelectedOption, item.Option2)
@Html.RadioButtonFor(modelItem =>item.SelectedOption, item.Option3)

如果您只是希望isSelected truefalse使用此功能。

@Html.RadioButtonFor(uc => uc.IsSelected, true)

答案 1 :(得分:0)

不确定是否是您的问题,但如果检查的比您预期的错误,请尝试makink值true

 @Html.RadioButtonFor(uc => uc.IsSelected, true)

答案 2 :(得分:0)

The overload that you are usingradio输入元素的值绑定到提供的值 - 因此您生成如下标记:

<input type="radio" name="isSelected" value="false">

当它被提交回您的控制器时,.NET将value反序列化为boolean - 在这种情况下,false

要解决此问题,请使用true作为第二个参数:

@Html.RadioButtonFor(uc => uc.IsSelected, true)

答案 3 :(得分:0)

试试这个,

@Html.RadioButtonFor(uc => uc.IsSelected, true)

 @Html.RadioButton("IsSelected", true)