Все примеры, которые я могу найти что-то вроде этого:Как реализовать проверку ASP.NET MVC 2, которая проверяет базу данных?
[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);
}
ли мне просто нужно продлить исключение для пользовательского SomeTypeOfCustomExtension
выше , или есть что-то уже построенное? Я делаю это путь ASP.NET MVC 2?
После этого, как я могу поместить его в состояние модели и дать представление, что-то не так?
http://www.asp.net/mvc/tutorials/validating-with-a-service- layer - cs, это именно то, о чем я говорил и пытаюсь выполнить! Я знал, что кто-то другой должен иметь аналогичные цели. Всего лишь несколько дней, чтобы найти LOL :) – rball
Вздох, похоже, вы МОЖЕТЕ поместить атрибуты на уровне класса ... это также упростит ситуацию. – rball
Пример атрибутов уровня класса: http://byatool.com/mvc/custom-data-annotations-with-mvc-how-to-check-multiple-properties-at-one-time/ – rball