更新 1
我想填充一个listboxfor
mvc 助手以在 View 中呈现列表项。我不知道如何将第二个参数传递给接受IENumerableSelectListItem
SelectionList
.
Html.ListBoxFor(model => model.SelectedDate, Model.DateList, new { })
我的模型类中有一个属性,
public IEnumerableSelectListItem DateList { get; set; }
并且不知何故,我需要从我的控制器操作方法中填充DateList,该方法填充所有其他模型属性并将其传递给我有助手的局部视图。DateList 应该从 Enum DateListEnum 获取值
关于如何去做这件事的任何想法。还让我知道如何确保一次选择一个列表项......我对所有这些都很陌生......而且我已经有很长一段时间了......但到目前为止没有任何结果……
我的控制器操作方法中有以下代码,
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
我根据以下代码使列表框正常工作并在 UI 中显示
` IEnumerable<SelectListItem> values = Enum.GetNames(typeof(ColumnFormattingDateFormats)).Cast<ColumnFormattingDateFormats>().Select(p => new SelectListItem()
{
Text = p.ToString(),
Value = ((int)p).ToString()
}).ToList();`
但现在我几乎没有其他问题,
我正在使用的枚举是
`public enum ColumnFormattingDateFormats : int
{
[StringValue("Wednesday, March 14, 2001")]
FULLDATE = 0,
[StringValue("3/14")]
MMDDWSLASH = 1,
[StringValue("3/14/01")]
MMDDYYWSLASH = 2,
[StringValue("03/14/01")]
MMDDYYWMMZEROPREFIXWSLASH = 3
}`
我的助手看起来像这样,
Html.ListBoxFor(model => model.SelectedDate, Model.DateList, new { })
1> 我如何将选定的项目传递给帮助者的列表框?
有没有办法通过
[DataMember]
public ColumnFormattingDateFormats SelectedDate{ get; set; }
我的模型类中的属性将所选项目传递给助手?首先,我将传递
this.SelectedDate= ColumnFormattingDateFormats.FULLDATE;
给我的模型类中的默认构造函数......但由于某种原因,第一个参数model => model.SelectedDate
有一些问题......抛出空异常......
2> 我如何确保[StringValue]
Enum 显示在 UI 列表框元素中,而不是前的 Enum Text 中。不应该显示 FULLDATE,而是应该显示“2001 年 3 月 14 日,星期三”?
3> 如何确保在不使用 livequery 的情况下选择单个项目?
我的大脑现在都炸了....任何方向有人吗??????