我有一个名为 Options 的类,其中我为不同的选项保留了一堆可枚举项。其中之一是在我的 Ball 模型中使用的可枚举的 Sizes。创建新球时,如何让我的球的大小字段显示为下拉列表?我假设我需要制作一个编辑器模板,但我不知道它应该是什么样子。
下面是一些示例代码:
选项.cs
public class Options
{
public enum Sizes
{
Small,
Medium,
Large
};
public enum Material
{
Rubber,
Plastic,
Metal
};
}
球.cs
public class Ball
{
public string Name { get; set; }
public Options.Sizes Size { get; set; }
public Options.Material Material { get; set; }
}
Index.cshtml @model WebApplication.Models.Ball
<form asp-action="Create" asp-controller="Ball">
@Html.EditorForModel()
<input type="submit" value="Submit"/>
</form>
如何让 EditorForModel 将枚举属性显示为具有枚举可能值的 DropDownLists?
我从这个来源得到了一些帮助
我没有像它建议的那样创建一个助手,但我使用了助手中的相同原则为我的 Sizes 枚举创建了一个 EditorTemplate。这是它的样子:
尺寸.cshtml
@model Options.Sizes
@{
var values = Enum.GetValues(typeof(Options.Sizes)).Cast<Options.Sizes>();
IEnumerable<SelectListItem> items =
from value in values
select new SelectListItem
{
Text = value.ToString(),
Value = value.ToString(),
Selected = (value.Equals(Options.Sizes.ATX_Full))
};
}
@Html.DropDownList("Size", items)
现在,当我调用@Html.EditorForModel()
Ball.cshtml 时,它会引用此编辑器模板并创建一个下拉列表,其中包含枚举中的所有选项。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句