我的道歉,有一个愚蠢的 javascript 覆盖了我选择的东西,这把事情搞砸了。我确实创建了一个测试项目来验证这里的建议,这就是我发现的(对于其他阅读此线程的人):
selectedDropOfDate 不必填写,事实上,当我填写它时它根本不起作用。让列表有一个标记为 selected = true 的项目效果很好。
示例代码
模型:
public class Home
{
public string Selected { get; set; }
public List<SelectListItem> Items { get; set; }
}
控制器:
public ActionResult Index()
{
var model = new Home();
model.Items = GetItems(DateTime.Now, DateTime.Now.AddDays(3));
return View(model);
}
private List<SelectListItem> GetItems(DateTime start, DateTime end)
{
var dates = new List<DateTime>();
for (double i = 0; i < 100; i++)
{
dates.Add(start.AddDays(i + 1));
}
var selectList = new List<SelectListItem>();
selectList.AddRange(dates.Select(x => new SelectListItem
{
Selected = x.Date == end.Date,
Text = x.ToString("d.M.yyyy"),
Value = x.ToString("d/M/yyyy", new DateTimeFormatInfo())
}));
return selectList;
}
看法:
<%= Html.DropDownListFor(model => model.Selected, Model.Items) %>