如何在 .Net MVC Core 中将枚举显示为 DropDownList

乔·希格利

我有一个名为 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在ASP.NET Core MVC App中获取DropDownList的选定值

如何在 ASP.Net MVC 中显示多个 DropDownList 并获取值

如何在 ASP.NET CORE 5.0 MVC 中将登录设置为默认路由

我如何获得一个Asp.Net Core DropdownList来显示C#枚举中的[Display()]值?

如何在.Net Core MVC中发布

如何在MVC Net Core中编辑可枚举或列表视图

如何在 ASP.NET Core API 中的 Swagger 中将注释显示为描述段落

如何在.NET MVC Core 5中将WebMatrix方法与Npgsql一起使用

如何在ASP.NET Core MVC中将js字符串发布到C#

如何在asp.net core mvc中将客户服务与控制器解耦

在asp.net MVC中为dropdownlist创建列表

如何从.net-MVC中的DropDownList获取文本?

如何使用所需的验证创建ASP.Net MVC DropDownList

如何使用 ASP.Net MVC 级联 DropDownList

如何在ASP.NET Core项目中为MVC和SignalR配置路由?

如何在ASP.NET MVC Core中为Identity Server 4编写集成测试

如何在ASP.NET Core MVC Controller中显示警报消息框?

如何在ASP.NET Core MVC中显示特定的ModelState错误?

如何在Razor编辑视图中显示选中的单选按钮Asp Net Core MVC

如何在ViewComponents的ASP.net MVC Core中显示外部表值

如何在jQuery方法中使用@razor呈现Dropdownlist-ASP.NET MVC

如何在ASP.NET MVC中创建可搜索的DropDownList

如何在 Asp.Net Core Mvc 5.0 中将 sql 数据库与 ado.net 连接?

如何在.net Core 2.0 MVC的razor中映射路径?

如何在.net core MVC视图中缩小?

如何在 ASP.NET Core MVC 中执行分页

在.NET Core MVC中,如何在AuthorizationHandler内访问DbContext?

如何在C#/ MVC 5中将布尔型属性动态转换为DropDownList

如何在.net core中显示图像