我试图使用Html.DropDownList扩展方法,但无法弄清楚如何将它与枚举一起使用。
我的课程:
namespace Support_A_Tree.Models
{
public enum Countries
{
Belgium,
Netherlands,
France,
United_Kingdom,
Other
}
[MetadataType(typeof(SupporterMetaData))]
public partial class Person
{
public string Name { get; set; }
public Countries Country { get; set; }
public List<SelectListItem> allCountries()
{
List<SelectListItem> choices = new List<SelectListItem>();
foreach (String c in Enum.GetValues(typeof(Countries)))
{
choices.Add(new SelectListItem() { Text = c , Value = bool.TrueString });
}
return choices;
}
}
public class SupporterMetaData
{
public string Name { get; set; }
[Required]
public Countries Country { get; set; }
}
}
在我的视图中,我尝试了所有国家,但似乎我做错了。
@using (Html.BeginForm())
{
<div>
<p style = "color: red;">@ViewBag.Message</p>
</div>
<div>
<h2> You want to ... </h2>
<p>Plant trees</p>
@Html.CheckBoxSimple("support", new { @value = "Plant trees" })
<p>Support us financial</p>
@Html.CheckBoxSimple("support", new { @value = "Support financial" })
</div>
<input type="submit" value="Continue ">
}
答案 0 :(得分:9)
在您的视图中,您可以使用SelectExtensions.EnumDropDownListFor:
E.g:
@Html.EnumDropDownListFor(model => model.Countries)
鉴于视图的@model
具有名为Countries
的属性enum
类型。
如果您想在下拉菜单中显示默认文字(例如:&#34;选择国家/地区&#34;)。看看下面的问题和答案。