[英]Drop down selection in ASP.Net MVC 3
我是asp.net MVC 3的新手。我想為每年,每月和每天創建下拉菜單。 我創建了一個收集通用功能的助手類。 見下文。
共同
Public Shared Function GetYearsList() As List(Of SelectListItem)
Dim items As New List(Of SelectListItem)
For i = -1 To 2500
Dim item As New SelectListItem
item.Text = Now.AddYears(i).Year.ToString()
item.Value = Now.AddYears(i).Year.ToString()
If i = Now.Year Then
item.Selected = True
End If
items.Add(item)
Next
Return items
End Function
在Controller類中。
Function Index() As ActionResult
ViewData("Year") = Command.GetYearsList()
ViewData("Month") = Command.GetMonthsList()
ViewData("Day") = Command.GetDaysList()
Return View()
End Function
在“查看”頁面中。
@Html.DropDownList("Year", DirectCast(ViewData("Year"), List(Of SelectListItem)), New With {.onchange = "setDate();"})
但是它沒有選擇當前年份。 如何選擇當前年份。 否則有其他解決方案嗎? 謝謝大家
我用C#顯示你想要的東西。 我認為您可以輕松地將其重寫為VB。
首先,為視圖創建一個視圖模型類。
public class SomeViewModel
{
public SomeViewModel()
{
this.Years = new List<int>();
for (int i = -1; i <= 2500; i++)
{
this.Years.Add(DateTime.Now.AddYears(i).Year);
}
this.SelectedYear = DateTime.Now.Year;
}
public int SelectedYear { set; get; }
public List<int> Years { set; get; }
}
它具有一個包含年份的屬性,另一個包含所選年份的屬性。
其次,制作一個簡單的控制器方法:
public ActionResult Index()
{
var model = new SomeViewModel();
return View(model);
}
之后,使您的強類型視圖:
@model YourAppNameSpace.ViewModels.SomeViewModel
...
@Html.DropDownListFor(model => model.SelectedYear, new SelectList(Model.Years))
它將創建一個包含年份的DropDownList,並且所選年份為當前年份。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.