在C#中,是否可以使用属性修饰Enum类型或执行其他操作来指定默认值应该是什么,而不更改值?无论出于何种原因,所需的数字可能都是一成不变的,并且仍然可以控制默认值.
enum Orientation
{
None = -1,
North = 0,
East = 1,
South = 2,
West = 3
}
Orientation o; // Is 'North' by default.
Run Code Online (Sandbox Code Playgroud) 在ASP.NET MVC 2中,我想写一个非常简单的下拉列表,它给出了静态选项.例如,我想提供"红色","蓝色"和"绿色"之间的选择.
我正在尝试使用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 …Run Code Online (Sandbox Code Playgroud) 我有一个enum下拉列表:
@Html.EnumDropDownListFor(model => model.Type, "-- Choose --", new { @class = "postfix" })
Run Code Online (Sandbox Code Playgroud)
为枚举下拉列表生成的html代码是:
<select data-val="true" data-val-required="Select type of ..." id="Type" name="Type" class="valid">
<option selected="selected" value="0">-- Choose --</option>
<option value="1">?Hotel</option>
<option value="2">Flight</option>
</select>
Run Code Online (Sandbox Code Playgroud)
我不希望optionLabel的值为0,因为此值使下拉列表有效并且不会显示任何错误消息.我怎么能阻止这个?
我EnumDropDownListFor在ASP.NET MVC中使用:
@Model.PhoneNumberType
@Html.EnumDropDownListFor(model => model.PhoneNumberType, new {@class = "form-control"})
Run Code Online (Sandbox Code Playgroud)
这不会预先选择enum下拉列表中的值.如果我只是显示enum值,它将显示正确的enum值.DropDown始终设置为下拉列表中的第一个值,但不设置为enum字段的值.
如何配置EnumDropDownListFor为使用enum字段值预先选择下拉列表?