如何根据枚举的整数值设置枚举类型
本文关键字:枚举 设置 类型 整数 何根 | 更新日期: 2024-10-31 17:25:43
我正在使用EF 5
和Code First
开发ASP.NET MVC4
应用程序。我的一个实体看起来像这样:
public enum PageTypes
{
LinkPage = 10,
FileListPage = 20,
TableValuePage = 30
}
public class Page
{
public int PageID { get; set; }
public string Title { get; set; }
public PageTypes Type { get; set; }
public DateTime Date { get; set; }
}
在我看来,我有下拉列表,其中这些值是硬编码的(取自视图模型):
public class PagesViewModel
{
public PageViewModel()
{
TypeOfPage = new List<ListItem> {
new ListItem { Text = "LinkPage ", Value = "10" },
new ListItem { Text = "FileListPage ", Value = "20" },
new ListItem { Text = "TableValuePage ", Value = "30" } };
}
//some other properties
public string SelectedValue { get; set; }
public List<ListItem> TypeOfPage { get; set; }
}
以及视图中的实际可视化效果:
@Html.DropDownListFor(m => m[i].SelectedValue, new SelectList(Model[i].TypeOfPage, "Value", "Text")})
因此,当我在控制器中获取模型时,如何根据 ViewModel 中的SelectedValue
实际设置Page
类型:
new Page { //other properties.., Type = ???? }
这看似简单:
var enumValue = (EnumType)integer;
因此,在您的情况下,下拉列表中的选定值将是一个 string
,因此首先您需要将其int.Parse
为整数,然后按上述方式进行转换以将其放入属性分配中。
new Page { Type = (PageTypes)integerFromDropDown, ... }