c# - MVC通过@foreach打印出每个Enum值

标签 c# asp.net-mvc enums

枚举:

    public enum Enumenter
    {
        Products = 10,
        Users = 20,
        Actions = 30
    }

我的观点:

@model IEnumerable<ServerDB.Tables.EntityType>

@{

    ViewBag.Title = "Infrastruktur";
}


<table class="table">
<tr>
    <th>

        <h2>Infrastruktur</h2>
    </th>

    <th></th>
</tr>

@foreach (var val in Enum.GetNames(typeof(ServerDB.Tables.Enum)))
{


    <tr>
        <td>
            @Html.DisplayName((String.Format("{0}{1}", val, "2")))

        </td>
        <td></td>
        <td>
            <p>
            </p>
        </td>
        <td></td>
    </tr>
}
@foreach (var Ost in Enum.(typeof(ServerDB.Tables.Enum)))
{
    @Html.DisplayName((String.Format("{0}", Ost)))
}

</table>

如何打印产品旁边的值? 我将使用枚举中的数字进行查询搜索,这样我就可以搜索任何产品、任何用户或与此相关的操作。 我不是这方面的专家,所以请温柔一点。

最佳答案

Enum.GetValues 将枚举的值作为对象返回,因此您需要将它们转换为 int 值(使用 int 而不是 var 会为你做到这一点)。之后,您可以使用 Enum.GetName 获取特定值的名称:

@foreach (int val in Enum.Values(typeof(ServerDB.Tables.Enum)))
{
   var name = Enum.GetName(typeof(ServerDB.Tables.Enum), val);

    <tr>
        <td>
            @Html.DisplayName((String.Format("{0}{1}", name, "2")))

        </td>
        <td>
            @val
        </td>
        <td>
            <p>

            </p>
        </td>
        <td>

        </td>
    </tr>
}

还有另一种方法不使用 Enum.GetName 方法。您只需将从 Enum.Values 获取的值转换为 string 即可获取名称,转换为 int 即可获取值

@foreach (var name in Enum.Values(typeof(ServerDB.Tables.Enum)))
{
    var val = (int)name;
    <tr>
        <td>
            @Html.DisplayName((String.Format("{0}{1}", name, "2")))

        </td>
        <td>
            @val
        </td>
        <td>
            <p>

            </p>
        </td>
        <td>

        </td>
    </tr>
}

关于c# - MVC通过@foreach打印出每个Enum值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32495288/

相关文章:

jquery - 为整个 Visual Studio 解决方案安装旧版 NuGet 包

swift - 在类型中找不到枚举大小写

c# - 如果没有这样的键,我如何更改 Dictionary 以便它返回自定义默认值而不是抛出异常?

C# 类设计 - 我应该考虑将 "Project"类放在哪里

c# - MVC - 使用 RedirectToAction() 传递数据

asp.net-mvc - 为什么 ASP.net MVC 不自动解码 POST(又名表单)参数?

c# - LibLog 中的上下文日志记录

c# - 获取 OEM 和 Ansi 中每个语言环境的代码页

C++ 通过此函数的所有路径都会在宏中调用自身吗?

java - 如果初始化对象涉及检查异常处理,如何使用枚举创建单例