【发布时间】:2012-12-25 12:39:59
【问题描述】:
更新 1
我想填充一个listboxfor mvc 助手以在视图中呈现列表项。我不知道如何将第二个参数传递给helper,它接受IENumerableSelectListItemSelectionList。
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> 我如何确保来自 Enum 的 [StringValue] 显示在 UI 列表框元素中,而不是前的 Enum Text 中。不应该显示 FULLDATE,而是应该显示“2001 年 3 月 14 日,星期三”?
3>如何确保在不使用 livequery 的情况下选择单个项目?
我的脑子现在都炸了....有什么方向吗?????
【问题讨论】: