Все примеры, которые я могу найти, делают что-то вроде этого:
[Required]
public string Title { get; set; }
Это отлично подходит для простых случаев, но как насчет того, что проверяет базу данных или что-то еще на стороне сервера?
ДляНапример, скажем, у меня есть база данных фильмов, и я хочу позволить людям оценивать ее.Как я могу сказать, что кто-то уже оценил фильм, так как я бы хотел, чтобы он оценил фильм только один раз.
Я бы подумал, что это будет что-то вроде:
public IEnumerable<string> ValidateUserHasNotAlreadyRatedMovie(User currentUser, Guid movieId)
{
if(movieHasAlreadyBeenRated)
{
yield return "Movie been rated man!";
}
}
Сейчастогда я бы назвал это что-то вроде:
var errors = new List<string>();
errors.AddRange(ValidateUserHasNotAlreadyRatedMovie(topic, comment));
if(errors.Any())
{
throw new SomeTypeOfCustomExtension??(errors);
}
Нужно ли просто расширить Exception для пользовательского SomeTypeOfCustomExtension
выше, или уже что-то построено?Я делаю это ASP.NET MVC 2 способ?
После этого, как мне перевести его в модельное состояние и дать представлению понять, что что-то не так?