Asp.net mvc 2 如何将枚举转换为IEnumerable<;选择列表项>;

Asp.net mvc 2 如何将枚举转换为IEnumerable<;选择列表项>;,asp.net-mvc-2,html-helper,Asp.net Mvc 2,Html Helper,更新1 我想为mvc帮助程序填充一个listbox,以呈现视图中的列表项。我不知道如何将第二个参数传递给helper,它接受IENumerableSelectListItemSelectionList Html.ListBoxFor(model => model.SelectedDate, Model.DateList, new { }) 我在模型课上有一个属性 public IEnumerableSelectListItem DateList { get; set; } 不知何故

更新1

我想为mvc帮助程序填充一个
listbox,以呈现视图中的列表项。我不知道如何将第二个参数传递给helper,它接受
IENumerableSelectListItem
SelectionList

 Html.ListBoxFor(model => model.SelectedDate, Model.DateList, new { })
我在模型课上有一个属性

public IEnumerableSelectListItem  DateList { get; set; }
不知何故,我需要从我的控制器操作方法中填充日期列表,该方法填充所有其他模型属性,并将其传递给我有助手的局部视图。DateList应该从枚举DateListNum获取值

有没有关于如何做这件事的想法。另外,请让我知道如何确保一次只选择一个列表项…我对所有这些都很陌生…我花了相当长的时间在这方面工作…但到目前为止还没有任何结果

我的控制器操作方法中有以下代码

model.DateList = getDateList();
它调用这个方法

public IEnumerableSelectListItem getDateList()

{

IEnumerableSelectListItem  values = Enum.GetValues(typeof(DateListEnum));

 //this one doesn't work because of casting issues and this is where i want to convert Enum Values to  IEnumerableSelectListItem

return values; 

 }
更新2

我让listbox工作,并根据下面的代码在UI中显示它

` IEnumerable<SelectListItem> values = Enum.GetNames(typeof(ColumnFormattingDateFormats)).Cast<ColumnFormattingDateFormats>().Select(p => new SelectListItem()
            {
                Text = p.ToString(),
                Value = ((int)p).ToString()
            }).ToList();`
我的助手看起来像这样

Html.ListBoxFor(model=>model.SelectedDate,model.DateList,new{})

1>如何将所选项目传递给listboxfor helper?
是否有方法通过属性将所选项目传递给助手
[DataMember]
公共列格式DateFormats SelectedDate{get;set;}
在我的模特课上?首先,我要通过考试
this.SelectedDate=ColumnFormattingDateFormats.FULLDATE
到我的模型类中的默认构造函数…但是由于某种原因,第一个参数
model=>model.SelectedDate
有一些问题..抛出null异常

2>如何确保在UI listbox元素中显示Enum中的
[StringValue]
,而不显示ex.FULLDATE的Enum文本,而应显示“2001年3月14日星期三”

3>如何确保在不使用livequery的情况下选择单个项目?

我的脑子都快炸开了……有人给我指路吗?

怎么样:

Enum.GetValues(typeof(MyEnum))
.Cast<MyEnum>()
.Select(p => new SelectListItem()
                    {
                        Text = p.ToString(),
                        Value = ((int) p).ToString()
                    })
                .ToList();
Enum.GetValues(typeof(MyEnum))
.Cast()
.Select(p=>newselectListItem()
{
Text=p.ToString(),
Value=((int)p).ToString()
})
.ToList();
那么:

Enum.GetValues(typeof(MyEnum))
.Cast<MyEnum>()
.Select(p => new SelectListItem()
                    {
                        Text = p.ToString(),
                        Value = ((int) p).ToString()
                    })
                .ToList();
Enum.GetValues(typeof(MyEnum))
.Cast()
.Select(p=>newselectListItem()
{
Text=p.ToString(),
Value=((int)p).ToString()
})
.ToList();

Cast
仍然会抛出一个错误,这是一个在给定上下文中无效的方法好吧…现在解决了…但是,
Value=(int)p
还有一个问题,它表示不能隐式将int类型转换为string这是我的枚举,
公共枚举列格式日期格式:int{[StringValue](“2001年3月14日星期三”]FULLDATE=0、[StringValue(“3/14”)]MMDDWSLASH=1、[StringValue(“3/14/01”)]MMDDYYWSLASH=2、[StringValue(“03/14/01”)]MMDDYYWMMZEROPREFIXWSLASH=3}
如果这有帮助…抱歉,更正了我的答案,我在一个编辑器中编写了此内容,然后在VS中进行了更改并复制了错误的内容:),希望它有助于找到一种方法将所选项目传递给包含在属性
[DataMember]public ColumnFormattingDateFormats SelectedDate{get;set;}中的帮助者
在我的模型类中?首先,我将
这个.SelectedDate=ColumnFormattingDateFormats.FULLDATE;
传递给我的模型类中的默认构造函数…但是由于某些原因,第一个参数
model=>model.SelectedDate
有一些问题..抛出null异常…
Cast
仍然抛出一个错误方法,该方法在给定的上下文中无效好的…现在解决了…但是,
Value=(int)p
还有一个问题,它表示不能隐式地将int类型转换为stringthis is my enum,
public enum columnformatingdateformats:int{[StringValue(“2001年3月14日星期三”)]FULLDATE=0,[StringValue(“3/14”)]MMDDWSLASH=1[StringValue(“3/14/01”)]MMDDYYWSLASH=2[StringValue(“03/14/01”)]MMDDYYWMMZEROPREFIXWSLASH=3}
如果这有帮助…抱歉,更正了我的答案,我在一个编辑器中编写了此内容,然后在VS中进行了更改并复制了错误的内容:),希望它有助于找到一种方法将所选项目传递给包含在属性
[DataMember]public ColumnFormattingDateFormats SelectedDate{get;set;}中的帮助者
在我的模型类中?首先,我正在将
this.SelectedDate=ColumnFormattingDateFormats.FULLDATE;
传递给我的模型类中的默认构造函数…但是由于某些原因,第一个参数
model=>model.SelectedDate
有一些问题..引发null异常。。。