我可以在Razor视图中访问C#枚举吗?

时间:2012-10-12 15:55:33

标签: asp.net-mvc asp.net-mvc-3 razor

我有以下内容:

namespace Storage.Constants.References {
    public enum RoleType {
        Guest = 1,
        User = 2,
        Admin = 3,
        Super = 4
    }
}

在我的web.config中,我添加了:

<add namespace="Storage.Constants.References" />

但是在我看来,我仍然没有得到任何关于RoleType的智能感知,它似乎不知道它是什么:

@model WebUx.ViewModels.BaseViewModel
@{ Layout = "~/Views/Shared/_Layout.cshtml"; }
@section status {

    @if (Model.Role >= RoleType.Admin)
    {

但是,如果我将其更改为:

,则有效
@if (Model.Role >= Storage.Constants.References.RoleType.Admin)

如果没有我指定“Storage.Constants.References”吗?

2 个答案:

答案 0 :(得分:4)

您是否尝试将namspace添加到剃刀视图中?

@using Storage.Constants.References

另外,如果要在Web配置文件中添加它,请确保添加到视图文件夹中的webconfig,而不是根级web配置

答案 1 :(得分:0)

在Blazor WebAssembly剃须刀页面中,放入@using namespac

@using Yoyo.Shared.Enum

在剃须刀页面中使用您的枚举

@if (participant.State == TestState.Started.ToString())
{ }

在C#中,您在命名空间Yoyo.Shared.Enum中的枚举

namespace Yoyo.Shared.Enum
{
    public enum TestState
    {
        NotStarted = 0,
        Started = 1
    }
}