jquery - 如何在 Asp.net core mvc 视图中检查带有枚举值的单选按钮
问题描述
我已将我的视图呈现如下
<div class="row row-margin-zero">
<label class="radio-inline margin-rightt-ten margin-leftt-five margin-top-none">
<input type="radio" asp-for="@Model.Countries" name="optradio" value="1" class="margin-rightt-five">
America
</label>
<label class="radio-inline margin-rightt-ten margin-leftt-five margin-top-none">
<input type="radio" asp-for="@Model.Countries" name="optradio" value="2" class="margin-rightt-five">
Australia
</label>
<label class="radio-inline margin-rightt-ten margin-leftt-five margin-top-none">
<input type="radio" asp-for="@Model.Countries" name="optradio" value="0" class="margin-rightt-five">
Eng
</label>
</div>
下面是我的枚举
公共枚举国家 {America,Eng,Australia}。
如何检查具有模型中指定的枚举值的单选按钮?
解决方案
假设您有一个 enumCountries
和一个 ViewModel,它的属性为Country
:
public enum Countries {America, Eng, Australia};
public class XModel{
// ... other props
public Countries Country{get;set;}
}
要为 Country 渲染单选按钮,您可以获取所有可能的值,System.Enum.GetValues(typeof(Countries))
这样您就可以通过一个简单的循环来渲染它们。
@model XModel
@foreach( var c in System.Enum.GetValues(typeof(Countries)) )
{
<label asp-for="Country">@c</label>
<input type="radio" asp-for="Country" value="@((int)c)" />
}
演示:
[编辑]:
我如何显示选定的值
只需checked
动态添加一个属性:
@foreach( var c in System.Enum.GetValues(typeof(Countries)) .OfType<Countries>() ) { <label asp-for="Country">@c</label> <input type="radio" asp-for="Country" value="@((int)c)" checked="@(c == Model?.Country)" /> }
推荐阅读
- c++ - qgridlayout 添加和删除子布局
- python-3.x - python panads 通过丢失列名进行分组
- css - 在 Chrome 中模拟缩放的 Css
- android - 如何更改默认日期颜色和星期日列颜色?
- python - 如何将从剪贴板粘贴的大文本转换为单个字符串?
- python - 如何获取 multiprocessing.Manager().Queue() 的进程 ID?
- selenium - 有时无法使用 selenium webdriver 在移动铬中获取当前网址
- android - 来电未显示在锁定屏幕上
- javascript - 无法通过在对话框流上下文中保存文档名称来向文档添加多个字段
- java - JList setSelectedValue 不起作用