加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

单选按钮 – MVC 5 RadioButtonFor枚举,始终选择默认的枚举值零

发布时间:2020-12-14 19:35:25 所属栏目:资源 来源:网络整理
导读:说我有一个枚举: public enum OrderStatusType{ Waiting = 0,Pending,Picked,Shipped,} 我生成单选按钮列表如下. @Html.RadioButtonFor(m = m.Status,OrderStatusType.Shipped,new {@checked = true})@Html.RadioButtonFor(m = m.Status,OrderStatusType.Wa
说我有一个枚举:
public enum OrderStatusType
{
    Waiting = 0,Pending,Picked,Shipped,}

我生成单选按钮列表如下.

@Html.RadioButtonFor(m => m.Status,OrderStatusType.Shipped,new {@checked = true})
@Html.RadioButtonFor(m => m.Status,OrderStatusType.Waiting)

但等待总是被选中.输出HTML如下:

input type="radio" value="Shipped" name="Status" id="Status" checked="True"
input type="radio" value="Waiting" name="Status" id="Status" checked="checked"

为什么MVC框架自动添加“已检查”属性?
谢谢.

该模型:

public class OrderViewModel
{
    public OrderStatusType Status { get; set; }
}

风景:

@using WebApplication17.Controllers
@model WebApplication17.Models.OrderViewModel

@{
    ViewBag.Title = "Home Page";
}


@Html.RadioButtonFor(m => m.Status,OrderStatusType.Picked)
<span>@OrderStatusType.Picked</span>

@Html.RadioButtonFor(m=>m.Status,OrderStatusType.Pending)
<span>@OrderStatusType.Pending</span>

@Html.RadioButtonFor(m => m.Status,new {@checked = true})
<span>@OrderStatusType.Shipped</span>

@Html.RadioButtonFor(m => m.Status,OrderStatusType.Waiting)
<span>@OrderStatusType.Waiting</span>

解决方法

它的选择是因为您的属性状态的值是OrderStausType.Waiting(这是绑定如何工作!).

从@ Html.RadioButtonFor()方法和控制器中删除新的{@checked = true},将状态值设置为OrderStausType.Shipped,然后再将其传递给视图.

还请注意,您应该使用< label>元素而不是< span>将标签与单选按钮相关联

@Html.RadioButtonFor(m => m.Status,OrderStausType.Picked,new {id = OrderStausType.Picked)
<label for=@OrderStausType.Picked>@OrderStausType.Picked</label>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读