这是我会怎么做视图
@Html.DropDownList("Last Ten Years", (IEnumerable<SelectListItem>)ViewBag.LastTenYears, "Select A Year")
,并在您Action
List<int> last10Years = new List<int>();
int currentYear = DateTime.Now.Year;
for (int i = currentYear - 10; i < currentYear; i++)
{
last10Years.Add(i);
}
ViewBag.LastTenYears = new SelectList(last10Years);
你可以看到一个演示here
以下来自你的评论请在下面找到我更新的答案。
我会先创建一个Model
类,我们将在我们的视图中使用该类。在这个模型类中,你可以拥有适当的属性。现在,我们只打算使用SelectlistItem
所以我们班的样子
public class ViewModel
{
public IEnumerable<SelectListItem> LastTenYears { get; set; }
}
然后在我们的控制器,我们可以创建一个方法将是我们下为我们下降的信息。
public IEnumerable<SelectListItem> GetLastTenYears()
{
List<SelectListItem> ddl = new List<SelectListItem>();
int currentYear = DateTime.Now.Year;
for (int i = currentYear - 10; i < currentYear; i++)
{
ddl.Add(new SelectListItem { Text = i.ToString(), Value = i.ToString() });
}
IEnumerable<SelectListItem> lastTenYears = ddl;
return lastTenYears;
}
现在我们要将这些数据传递给视图。为了讨论起见,我将使用Index
作为视图,但您可以将它传递给您喜欢的任何视图。因此,我们将我们的Index
行动改变
public ActionResult Index()
{
ViewModel viewModel = new ViewModel();
viewModel.LastTenYears = GetLastTenYears(); //get the drop down list
return View(viewModel); //we're passing our Model to the view
}
最后,我们要确保我们的看法知道使用哪些Model
所以我们会做的Index.cshtml
文件
@model YourNameSpace.ViewModel
和的beging下面我们DropDownList
helper方法现在将变为指向特性在我们Model
类作为
@Html.DropDownList("Last Ten Years", Model.LastTenYears, "Please select a year")
附注:您可以SIM卡将产生'SelectList'的代码放大到'新的SelectList(Enumerable.Range(DateTime.Now.Year,10));' –