簡體   English   中英

MVC從選擇下拉列表

[英]MVC drop down from select

<select name="BasicInfo.Month">
    <option value="na">Month</option>
    <option value="1">January</option>
    <option value="2">February</option>
    <option value="3">March</option>
    <option value="4">April</option>
    <option value="5">May</option>
    <option value="6">June</option>
    <option value="7">July</option>
    <option value="8">August</option>
    <option value="9">September</option>
    <option value="10">October</option>
    <option value="11">November</option>
    <option value="12">December</option>
</select>

我有這段代碼是從某個地方復制的,我需要創建一個下拉列表MVC樣式,以便可以標記選定的樣式等。如何將其轉換為MVC使用的樣式?

在您的視圖模型中,您可以添加以下屬性:

public IEnumerable<SelectListItem> Months
{
    get 
    {
        return DateTimeFormatInfo
               .InvariantInfo
               .MonthNames
               .Select((month, index) => new SelectListItem
               {
                   Value = (index + 1).ToString(),
                   Text = month
               });
    }
}

在您看來,這是適當的Months

<%= Html.DropDownListFor(Model.Months) %>

這種方法的優點是,如果您更改應用程序的語言設置,將翻譯月份名稱。

以最簡單的形式:

@Html.DropDownListFor(m => m.BasicInfo.Month, new List<SelectListItem>
{
    new SelectListItem { Text = "Month", Value = "na" },
    new SelectListItem { Text = "January", Value = "1" },
    new SelectListItem { Text = "February", Value = "2" },
    new SelectListItem { Text = "March", Value = "3" },
    new SelectListItem { Text = "April", Value = "4" },
    new SelectListItem { Text = "May", Value = "5" },
    new SelectListItem { Text = "June", Value = "6" },
    new SelectListItem { Text = "July", Value = "7" },
    new SelectListItem { Text = "August", Value = "8" },
    new SelectListItem { Text = "September", Value = "9" },
    new SelectListItem { Text = "October", Value = "10" },
    new SelectListItem { Text = "November", Value = "11" },
    new SelectListItem { Text = "December", Value = "12" }
})

如果確實需要,可以使用DateTime對象自動創建列表。 這樣,您還可以獲得特定於文化的月份名稱。

您的模型將是:

public class MyModel
{
    public BasicInfoModel BasicInfo { get; set; }
}
public class BasicInfoModel
{
    public string Month { get; set; }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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