ASP.NET MVC-显示编码字段的值

本文关键字:字段 编码 显示 NET MVC- ASP | 更新日期: 2023-09-27 17:58:35

在离开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()

ASP.NET MVC-显示编码字段的值

我建议您显示DropDownList,这样您就可以使用枚举:

@Html.DropDownList("Genre", 
   Html.GetEnumSelectList(typeof(Genre)) , 
   "Select My Type", 
   new { @class = "form-control" })

如果要将枚举显示为字符串,请在模型中将其从int更改为YourNumType:

public class Movie
{
    ...
    [Required]
    public GenreEnum Genre { get; set; }
    ...
}

在剃刀里只写

@Html.DisplayFor(model=> Model.Genre )