C# 在创建<;li>;时使用显示(名称);

C# 在创建<;li>;时使用显示(名称);,c#,asp.net,asp.net-mvc,razor,enums,C#,Asp.net,Asp.net Mvc,Razor,Enums,我正试图本地化一个开源项目,但我被枚举字符串卡住了 我的Enum.cs是 using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Reflection; using System.Web; namespace TestSite.Domain.Models { public enum

我正试图本地化一个开源项目,但我被枚举字符串卡住了

我的Enum.cs是

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Reflection;
using System.Web;


namespace TestSite.Domain.Models

    {
    public enum SortSpan
        {
            /// <summary>
            /// Default value
            /// </summary>
            [Display(Name = "Hepsi")]
            All = 0,

            /// <summary>
            /// Span aralığını 1 saate indirger
            /// </summary>
            [Display(Name = "Saat")]
            Hour,

            /// <summary>
            /// Span aralığını 1 güne indirger
            /// </summary>
            [Display(Name = "Gün")]
            Day,

            /// <summary>
            /// Span aralığını 1 haftaya indirger
            /// </summary>
            [Display(Name = "Hafta")]
            Week,

            /// <summary>
            /// Span aralığını 1 aya indirger
            /// </summary>
            [Display(Name = "Ay")]
            Month,

            /// <summary>
            /// Limits search span to ~90 days
            /// </summary>
            [Display(Name = "Mevsim")]
            Quarter,

            /// <summary>
            /// Limits search span to 1 year
            /// </summary>
            [Display(Name = "Yıl")]
            Year
        }
    }
使用系统;
使用System.Collections.Generic;
使用System.ComponentModel.DataAnnotations;
使用System.Linq;
运用系统反思;
使用System.Web;
命名空间TestSite.Domain.Models
{
公共枚举排序集
{
/// 
///默认值
/// 
[显示(Name=“Hepsi”)]
全部=0,
/// 
///跨越阿拉伯半岛
/// 
[显示(Name=“Saat”)]
小时,
/// 
///斯潘阿拉尔ıını1 güne Indiger
/// 
[显示(Name=“Gün”)]
白天
/// 
///跨越阿拉尔哈夫塔亚-因迪格尔
/// 
[显示(Name=“Hafta”)]
周,
/// 
///跨越咸水河
/// 
[显示(Name=“Ay”)]
月,
/// 
///将搜索范围限制为约90天
/// 
[显示(Name=“Mevsim”)]
一刻钟
/// 
///将搜索范围限制为1年
/// 
[显示(Name=“Yıl”)]
年
}
}
我为enum SortSpan上的每个字符串提供[Display(Name=“…”)]。 但在视图中,它总是看到字符串名而不是DisplayName

这里是风景

   @*Top Sort Span Buttons*@
        @if (Model.Context != null && Model.Sort == TestSite.Domain.Models.SortAlgorithm.Top)
        {
            <div>
                <ul class="tabmenu submenu">
                    @{
                        var spans = new SortSpan[] { SortSpan.Day, SortSpan.Week, SortSpan.Month, SortSpan.Quarter, SortSpan.Year, SortSpan.All };
                        foreach (var span in spans)
                        {
<li class='@(Model.Span.HasValue && Model.Span.Value == span ? "selected" : "disabled")'>
@Html.RouteLink(span.ToString(), Model.Submissions.RouteName, new { sort = (Model.Sort == null ? "" : Model.Sort.ToString().ToLower()), span = span.ToString().ToLower() })
</li>
                        }
                    }
                </ul>
            </div>
        }
@*顶部排序范围按钮*@
@if(Model.Context!=null&&Model.Sort==TestSite.Domain.Models.SortAlgorithm.Top)
{
    @{ var span=new SortSpan[]{SortSpan.Day,SortSpan.Week,SortSpan.Month,SortSpan.Quarter,SortSpan.Year,SortSpan.All}; foreach(跨度中的变量跨度) {
  • @Html.RouteLink(名称,Model.Submissions.RouteName,新的{sort=(Model.sort==null?”:Model.sort.ToString().ToLower(),Span=name.ToLower())
  • } }
} @if(Model.IsActualSubverse) { @Action(“StickiedSubmission”,“Subversies”,新的{subversisename=Model.Context.Name}) } else if(Model.Context==null | |(Model.Context!=null&&Model.Context.Type!=DomainType.Set)) { @Html.Partial(“~/Views/Welcome/\u FirstTimeVisitorWelcome.cshtml”) @动作(“FeatureSub”、“Home”) @动作(“胶粘子任务”、“主任务”) } @if(Model.Submissions.Count Model.Submissions,“IPaginatedList”) @*
    @if(Model.Submissions.HasPreviousPage) {
  • @Html.RouteLink(“ } @if(模型提交。下一页) {
  • @using Voat.Domain.Models
    
    @model Voat.Models.ViewModels.SubmissionListViewModel
    
    @{
        ViewBag.Title = Model.Title;
        ViewBag.Description = Model.Description;
        int counter = 0;
    }
    
    @section PageHeader {
        @if (Model.IsActualSubverse)
        {
            @Html.Partial("_SubverseStylesheetLink", Model.Context.Name, new ViewDataDictionary())
        }
    }
    
    <style type="text/css">
        body > .content .link .rank {
            width: 3.2ex;
        }
    </style>
    
    <div id="container">
        @if (Model.IsActualSubverse)
        {
            @Html.Action("SidebarForSelectedSubverse", "Subverses", new { selectedSubverse = Model.Context.Name })
        }
        else if (Model.Context != null && Model.Context.Type == Voat.Domain.Models.DomainType.Set)
        {
            @Html.Action("Sidebar", "Set", new { name = Model.Context.FullName })
        }
        else
        {
            @Html.Partial("~/Views/Shared/Sidebars/_SidebarFrontpage.cshtml")
        }
    
        <div class="content" role="main">
    
        @*Top Sort Span Buttons *@
        @if(Model.Context != null && Model.Sort == Voat.Domain.Models.SortAlgorithm.Top)
        {
            <div>
                <ul class="tabmenu submenu">
                    @{
                        var spans = new SortSpan[] { SortSpan.Day, SortSpan.Week, SortSpan.Month, SortSpan.Quarter, SortSpan.Year, SortSpan.All };
                        Type type = typeof(SortSpan);
                        foreach (var span in spans)
                        {
                            SortSpan sortSpan = SortSpan.All;                               
                            Type type = typeof(SortSpan);
                            MemberInfo[] memberInfo = type.GetMember(sortSpan.ToString());
                            object[] attributes = memberInfo[0].GetCustomAttributes(typeof(DisplayAttribute), false);
                            string name = ((DisplayAttribute)attributes[0]).Name;   
                            <li class='@(Model.Span.HasValue && Model.Span.Value == span ? "selected" : "disabled")'>@Html.RouteLink(name, Model.Submissions.RouteName, new { sort = (Model.Sort == null ? "" : Model.Sort.ToString().ToLower()), span = name.ToLower() })</li>
                        }
                    }
                </ul>
            </div>
        }
    
            <div class="sitetable linklisting">
                @if (Model.IsActualSubverse)
                {
                    @Html.Action("StickiedSubmission", "Subverses", new { subverseName = Model.Context.Name })
                }
                else if (Model.Context == null || (Model.Context != null && Model.Context.Type != DomainType.Set))
                {
                    @Html.Partial("~/Views/Welcome/_FirstTimeVisitorWelcome.cshtml")
                    @Html.Action("FeaturedSub", "Home")
                    @Html.Action("StickiedSubmission", "Home")
                }
    
                @if (Model.Submissions.Count <= 0)
                {
                    Html.RenderPartial("_DefaultMessage", new ViewDataDictionary() {{"selectedSubverse", Model.Context.Name}});
                }
    
                @foreach (var submission in Model.Submissions)
                {
                    @Html.Partial("~/Views/Shared/Submissions/_Submission.cshtml", submission, new ViewDataDictionary() { { "CssClass", new string[] { counter % 2 == 0 ? "even" : "odd" } } })
                    counter++;
                }
            </div>
    
            @{
                Model.Submissions.RouteData = Request.RequestContext.RouteData.Values;
                if (Model.Sort != null)
                {
                    Model.Submissions.RouteData["sort"] = Model.Sort.ToString().ToLower();
                }
                if (Model.Span != null)
                {
                    Model.Submissions.RouteData["span"] = Model.Span.ToString().ToLower();
                }
                if (!String.IsNullOrEmpty(Request.QueryString["frontpage"]))
                {
                    Model.Submissions.RouteData["frontpage"] = Request.QueryString["frontpage"];
                }
            }
            @Html.DisplayFor(model => Model.Submissions, "IPaginatedList")
    
            @*<div class="pagination-container">
                <ul>
                    @if (Model.Submissions.HasPreviousPage)
                    {
                        <li class="btn-whoaverse-paging">
                            @Html.RouteLink("< prev", Model.Submissions.RouteName, new {
                           page = (Model.Submissions.PageIndex - 1),
                           sort = (Model.Sort == null ? "" : Model.Sort.ToString().ToLower()),
                           time = (Model.Span == null ? "" : Model.Span.ToString().ToLower()),
                           frontpage = Request.QueryString["frontpage"]
                       }, new {rel = "prev"})
                        </li>
                    }
    
                    @if (Model.Submissions.HasNextPage)
                    {
                        <li class="btn-whoaverse-paging">
                            @Html.RouteLink("next >", Model.Submissions.RouteName, new {
                           page = (Model.Submissions.PageIndex + 1),
                           sort = (Model.Sort == null ? "" : Model.Sort.ToString().ToLower()),
                           time = (Model.Span == null ? "" : Model.Span.ToString().ToLower()),
                           frontpage = Request.QueryString["frontpage"]
                       }, new { rel = "next" })
                        </li>
                    }
                </ul>
            </div>*@
    
            @if (!Model.IsActualSubverse)
            {
                <div>
                    <a href="/random">rastgele evren getir</a> veya <a href="/randomnsfw">rastgele NSFW evren getir </a>
                </div>
            }
        </div>
    </div>
    
    <ul class="tabmenu submenu">
        @{    
            foreach (SelectListItem span in EnumHelper.GetSelectList(typeof(SortSpan)))
            {
                <li class='@(Model.Span.HasValue && Model.Span.Value.ToString() == span.Value ? "selected" : "disabled")'>
                    @Html.RouteLink(span.Text, Model.Submissions.RouteName, new { sort = (Model.Sort == null ? "" : Model.Sort.ToString().ToLower()), span = span.Text.ToLower() })
                </li>
            }
        }
    </ul>
    
    SortSpan sortSpan = SortSpan.All;                               
    Type type = typeof(SortSpan);
    MemberInfo[] memberInfo = type.GetMember(sortSpan.ToString());
    object[] attributes = memberInfo[0].GetCustomAttributes(typeof(DisplayAttribute), false);
    string name = ((DisplayAttribute)attributes[0]).Name;
    
     @*Top Sort Span Buttons *@
        @if(Model.Context != null && Model.Sort == TestSite.Domain.Models.SortAlgorithm.Top)
        {
            < div >
                < ul class="tabmenu submenu">
                    @{
                        var spans = new SortSpan[] { SortSpan.Day, SortSpan.Week, SortSpan.Month, SortSpan.Quarter, SortSpan.Year, SortSpan.All };
                        Type type = typeof(SortSpan);
                        foreach (var span in spans)
                        {
                            MemberInfo[] memberInfo = type.GetMember(span.ToString());
                            object[] attributes = memberInfo[0].GetCustomAttributes(typeof(DisplayAttribute), false);
                            string name = ((DisplayAttribute)attributes[0]).Name;
                            <li class='@(Model.Span.HasValue && Model.Span.Value == span ? "selected" : "disabled")'>@Html.RouteLink(name, Model.Submissions.RouteName, new { sort = (Model.Sort == null ? "" : Model.Sort.ToString().ToLower()), span = name.ToLower() })</li>
                        }
                    }
                </ul>
            </div>
        }