我有兩個多選列表框;一個伴月,一個有着多年如下列:ASP.NET MVC(剃鬚刀)Listbox多選字符串值
@Html.ListBoxFor(m => m.IncludeGuestsArrivedInTimeframeMonths, Model.TimeframeMonths)
@Html.ListBoxFor(m => m.IncludeGuestsArrivedInTimeframeYears, Model.TimeframeYears)
我節省了兩個值,以數據庫爲逗號分隔列表(串/ NVARCHAR)。值如下:月份: 1,3,7; 年份: 2002,2005
由於某些原因,當我將值拉回到窗體時,幾個月在列表框中預先選好,但這些年沒有。
任何想法?
EDIT - 附加代碼樣品:
控制器 - 管理
public ActionResult Manage(Guid id)
{
var list = _listService.GetList(id);
var model = LoadModelFromObject(list);
model.TimeframeMonths = GenerateMonthDropdown();
model.TimeframeYears = GenerateYearDropdown(model.IncludeGuestsArrivedInTimeframeYears.Split(','));
model.DaysOfWeek = GenerateDaysOfWeekDropdown();
return View(model);
}
控制器 - '幫助器'
private IList<SelectListItem> GenerateYearDropdown(string[] selected)
{
var list = new List<SelectListItem>();
var startYear = DateTime.Now.Year - 10;
for (int idx = startYear; idx < startYear + 11; idx++)
{
list.Add(new SelectListItem
{
Value = idx.ToString(),
Text = idx.ToString(),
Selected = selected != null && selected.Contains(idx.ToString())
});
}
return list;
}
查看
@Html.CheckBoxFor(m => m.IncludeGuestsArrivedInTimeframe)
@Html.LabelFor(m => m.IncludeGuestsArrivedInTimeframe)
@Html.ListBoxFor(m => m.IncludeGuestsArrivedInTimeframeMonths, Model.TimeframeMonths)
@*@Html.ListBoxFor(m => m.IncludeGuestsArrivedInTimeframeYears, Model.TimeframeYears)*@
@Html.ListBox("IncludeGuestsArrivedInTimeframeYears", Model.TimeframeYears)
'Model.TimeframeYears'返回什麼?我的意思是價值觀。它必須返回IEnumerable類型,但我看不到它具有的值。 –
tugberk
2012-01-04 15:28:44
@tugberk Model.TimeframeYears有'IList',每個SelectListItem的值和文本是年份(2002) –
2012-01-04 15:46:24
您能否提供說明'IncludeGuestsArrivedInTimeframeYears'和'TimeframeYears'屬性問題的示例值? – 2012-01-04 17:45:56