<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使用的东西?
答案 0 :(得分:3)
在视图模型中,您可以添加以下属性:
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) %>
这种方法的优点是,如果您更改应用程序的语言设置,将翻译月份名称。
答案 1 :(得分:1)
以最简单的形式:
@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; }
}