【问题标题】:MVC5 radiobutton value errorMVC5 单选按钮值错误
【发布时间】:2016-03-01 14:56:20
【问题描述】:

我对 MVC 有点陌生,已经开始从 Web 表单迁移,所以请多多包涵。

我有一个定义为性别的单选按钮组;

<div class="form-group">
    @Html.LabelFor(m => m.Gender, new { @class = "col-xs-3 control-label" })
    <div class="col-xs-5">
        <div class="radio">
            <label>
                @Html.RadioButtonFor(m => m.Gender, new { @class = "form-control", value= Gender.Male})<span>Male</span>
                @*<input type="radio" name="gender" value="male"/> Male*@
            </label>
        </div>
        <div class="radio">
            <label>
                @Html.RadioButtonFor(m => m.Gender, new { @class = "form-control", value = Gender.Female }) <span>Female</span >
                @*<input type="radio" name="gender" value="female"/> Female*@
            </label>
        </div>
    </div>
</div>

其中 Gender 是在另一个项目中定义的枚举,但 viewmodel 类使用该枚举。

 [Required]
 [Display(Name = "Gender")]
 public DomainClasses.Enums.Gender Gender { get; set; }

无论我如何尝试正确解决此问题,我都会收到以下验证错误。

值“{ class= form-control, value = Male }”对 Gender 无效。

更新:

提交之前的原始外观是

但是换成建议的方法后,为什么现在的样子是这样的?

【问题讨论】:

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


    【解决方案1】:

    看看这张图片

    这张图表明,接受second参数作为Html Attributes没有overload,所以你需要这样写:

    <div class="form-group">
        @Html.LabelFor(m => m.Gender, new { @class = "col-xs-3 control-label" })
        <div class="col-xs-5">
            <div class="radio">
                <label>
                    @Html.RadioButtonFor(m => m.Gender, Gender.Male , new { @class = "form-control" })<span>Male</span>
                    @*<input type="radio" name="gender" value="male"/> Male*@
                </label>
            </div>
            <div class="radio">
                <label>
                    @Html.RadioButtonFor(m => m.Gender, Gender.Female,  new { @class = "form-control" }) <span>Female</span >
                    @*<input type="radio" name="gender" value="female"/> Female*@
                </label>
            </div>
        </div>
    </div>
    

    在此重载中,您将第二个参数作为 RadioButton

    传递

    【讨论】:

    • 第二个参数不应该只是所需的枚举项,而不是尝试分配给'value'吗?
    • @ChrisDavis 抱歉,我从代码中删掉了。谢谢
    • 请查看更新后的帖子,您建议的更改看起来不对,为什么会这样?
    • @dinotom 这是样式问题,我没有看到你的样式,尝试在浏览器中检查
    • @dinotom 因为 RadioButton 本身不会创建文本,这是跨度的问题,请参阅跨度的样式
    猜你喜欢
    • 1970-01-01
    • 2013-12-14
    • 2014-11-14
    • 2020-03-18
    • 1970-01-01
    • 2017-06-08
    • 1970-01-01
    • 2014-03-26
    • 2015-03-14
    相关资源
    最近更新 更多