Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# mvc4中下拉列表中的枚举值_C#_Asp.net Mvc 4 - Fatal编程技术网

C# mvc4中下拉列表中的枚举值

C# mvc4中下拉列表中的枚举值,c#,asp.net-mvc-4,C#,Asp.net Mvc 4,如何在mvc4中使用枚举值创建下拉列表 我有一门语言课 public enum Language { English = 0 } 我的财产是 public Language Language { get; set; } 我将如何通过下拉列表调用视图您可以拥有一个视图模型: public class MyViewModel { public Language SelectedLanguage { get; set; } public IEnumerable<Se

如何在mvc4中使用枚举值创建下拉列表

我有一门语言课

 public enum Language {
    English = 0
}
我的财产是

public Language Language { get; set; }

我将如何通过下拉列表调用视图

您可以拥有一个视图模型:

public class MyViewModel
{
    public Language SelectedLanguage { get; set; }
    public IEnumerable<SelectListItem> Languages
    {
        get 
        {
            var languages = 
                from l in Enum.GetValues(typeof(Language))
                select new { ID = (int)d, Name = d.ToString() };
            return new SelectList(languages , "ID", "Name", this.SelectedLanguage);
        }
    }
}

另一种可能是编写一个自定义帮助程序,将封装此逻辑,如所示。

您可以拥有一个视图模型:

public class MyViewModel
{
    public Language SelectedLanguage { get; set; }
    public IEnumerable<SelectListItem> Languages
    {
        get 
        {
            var languages = 
                from l in Enum.GetValues(typeof(Language))
                select new { ID = (int)d, Name = d.ToString() };
            return new SelectList(languages , "ID", "Name", this.SelectedLanguage);
        }
    }
}
另一种可能是编写一个自定义帮助程序来封装此逻辑,如所示。

这将完成以下工作:

public enum Language
{
    English,
    French,
    Spanish
}

public static class Enum
{
    public static IEnumerable<T> GetItems<T>()
    {
        return System.Enum.GetValues(typeof(T)).Cast<T>();
    }
}

public class ViewModel
{
    public Language Language
    {
        get;
        set;
    }

    public IEnumerable<SelectListItem> Languages
    {
        get
        {
            return Enum.GetItems<Language>().Select(x => new SelectListItem() { Text = x.ToString(), Value = x.ToString() });
        }
    }
}
这将完成以下工作:

public enum Language
{
    English,
    French,
    Spanish
}

public static class Enum
{
    public static IEnumerable<T> GetItems<T>()
    {
        return System.Enum.GetValues(typeof(T)).Cast<T>();
    }
}

public class ViewModel
{
    public Language Language
    {
        get;
        set;
    }

    public IEnumerable<SelectListItem> Languages
    {
        get
        {
            return Enum.GetItems<Language>().Select(x => new SelectListItem() { Text = x.ToString(), Value = x.ToString() });
        }
    }
}
提示:提示: