簡體   English   中英

ASP.Net MVC 3中的下拉選擇

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM