作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我可以通过哪种方式实现枚举值的下拉列表?
我有一个这样的枚举:
public enum ValueEnum : byte
{
[Description("Value 1")]
Value1 = 1,
[Description("Value 2")]
Value2 = 2,
[Description("Value 3")]
Value3 = 4
}
我想从服务器端的多个选择中获取单个值而不是所选值列表:
public ActionResult ValueAction(ValueEnum result)
{
//too many code
return View();
}
其中结果可以是 ValueEnum.Value1
或 ValueEnum.Value1 | ValueEnum.Value3
没有客户端总和有没有办法做到这一点?
最佳答案
我通过以下行为在客户端解决了这个问题:
获取
方法:
[HttpGet]
public ActionResult ValueAction(ValueEnum result)
{
//irrelevant code
ViewBag.Values = Enum.GetValues(typeof(ValueEnum))
.OfType<ValueEnum>()
.Select(x => new SelectListItem
{
Text = x.GetCustomAttribute<DescriptionAttribute>().Description,
Value = ((byte)x).ToString()
});
return View();
}
Razor :
@using(Html.BeginForm())
{
@*irrelevant code*@
@Html.DropDownList("valueEnum", (IEnumerable<SelectListItem>)ViewBag.Values, new { multiple="multiple", id="enumValues" })
@*Here would be stored result value for this flagged enum*@
<input type='hidden' name='resultValue' id='hidden-enum-value' />
@*irrelevant code*@
<input type="submit" value="Submit" />
}
JS:
$(function() {
$('form').submit(function() {
var vals = $('#enumValues').val();
var result = 0;
for(let i = 0; i < vals.length; i++) {
result += Number(vals[i]);
}
$('#hidden-enum-value').val(result);
});
});
发布
方法:
[HttpPost]
public ActionResult ValueAction(ValueEnum resultValue)
{
//irrelevant code
return View();
}
关于c# - 枚举的多选下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35794864/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!