我试图创建一个小型的网络应用程序,允许将电影存储在数据库中。我有这个Movie
类:需要帮助创建/使用类中的集合(C#,ASP.Net,MVC)
public class Movie
{
public string Title { get; set; }
public string Synopsis { get; set; }
public List<string> Actors { get; set; }
public DateTime StartDate { get; set; }
public string MoviePic { get; set; } // path to image
public int RunningTime { get; set; } // in minutes
public string Trailer { get; set; } // youtube url
}
在我的控制,我试图使用类来创建一个电影:
var jurassicPark = new Movie
{
Title = "Jurassic Park",
Synopsis = "Dinosaurs go crazy on an island.",
MoviePic = "jurassicLogo.jpg"
};
所有这一切的伟大工程,但我也想添加一个Rating
财产,它可以只有是表示该评级标志的图像的四个字符串之一。换句话说,我不想只有一个public string Rating
属性可以是任何旧的字符串。我只想在四个特定的字符串之间进行选择。
例如,我最初把这个电影类:
public class Rating
{
public string GRating = "g.jpg";
public string PgRating = "pg.jpg";
public string Pg13Rating = "pg13.jpg";
public string RRating = "r.jpg";
}
这并没有工作,所以我做了一些谷歌搜索,并尝试这个:
public enum Rating
{
GRated = "G.jpg",
PgRated = "PG.jpg",
Pg13Rated = "PG13.jpg",
RRated = "R.jpg"
}
看到没工作,或者。我可以在我的控制器中调用Movie.Rating.GRated
,但我实际上无法将评分分配给电影。我试着给电影类添加public Rating Rating { get; set; }
,看起来好像它可以让我在控制器中为我的jurassicPark
对象添加一个评级,但它不喜欢我试过的任何东西(例如:Rating = Movie.Rating.Pg13Rated
给了我一个红色的波浪形状)。
看起来这应该是超级简单的,但我对ASP.Net还是有点新,而且我在这方面遇到了很多麻烦。
我确实尝试过,但我无法弄清楚如何分配评级(请参见下段) –
我提到在底部段落 –
enum是正确的选择,你知道它们永远不会改变 - 但枚举必须是整型(除了'char') - 通常是'int',但可以是'byte','long'等。该值不能是'string'。如果您要将'Rating.GRated'显示为“g.jpg”,则使用'[Display]'属性 –