离开ASP.NET几年后,我最近开始回归,特别是对于MVC。 假设你有一个像这样的电影类:
public class Movie
{
public int ID { get; set; }
[StringLength(60, MinimumLength = 3)]
public string Title { get; set; }
[Display(Name = "Release Date")]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public DateTime ReleaseDate { get; set; }
[Required]
public int Genre { get; set; }
[Range(1, 100)]
[DataType(DataType.Currency)]
public decimal Price { get; set; }
[RegularExpression(@"^[A-Z]+[a-zA-Z''-'\s]*$")]
[StringLength(5)]
public string Rating { get; set; }
}
我在“创建/编辑”视图中更改了字段类型,以便用户根据以下内容从选择框中选择:
1 = Action;
2 = Adventure;
3 = Comedy;
4 = Horror;
5 = Disaster;
6 = Political;
7 = Thriller;
是否有一种简单的方法可以在视图/详细信息页面中显示相应的“Human”值而不是普通整数?
(在我非常清楚的Django中,你只需要movie.get_Genre_display()
:get_FOO_display())
答案 0 :(得分:1)
我假设您显示DropDownList,因此您可以使用枚举:
@Html.DropDownList("Genre",
Html.GetEnumSelectList(typeof(Genre)) ,
"Select My Type",
new { @class = "form-control" })
答案 1 :(得分:0)
如果要将枚举显示为字符串,请在模型中将其从int更改为YourEnumType:
public class Movie
{
...
[Required]
public GenreEnum Genre { get; set; }
...
}
在razor中写一下
@Html.DisplayFor(model=> Model.Genre )