Пользовательская CMS с ASP.NET MVC2, проблема с проверкой - PullRequest
0 голосов
/ 02 июля 2011

Как получить полный контроль над обработкой аннотаций данных, таких как [Required(ErrorMessage = "Title is required")]?

В настоящее время моя система игнорирует необходимую аннотацию и, таким образом, принимает нулевое значение при редактировании.

Как ни странно, это не изменилось обратно в базу данных, где данные / поля не повреждены. Так что я думаю, что LINQ хранит некоторые раздражающие локально ...

Вам нужно больше деталей? Это в основном простые методы действий GET / POST в MVC2.

EDIT:

Модель выглядит так:

public class HomeContent {
    [Required(ErrorMessage = "* Id is required")]
    public int Id { get; set; }

    [Required(ErrorMessage = "* Title is required")]
    [StringLength(50, ErrorMessage = "* Title is too long")]
    public string Title { get; set; }

    [Required(ErrorMessage = "* Content is required")]
    [StringLength(8000, ErrorMessage = "* Content is too long")]
    //8000 = varchar(MAX)
    public string Content { get; set; }

    [Required(ErrorMessage = "* You need to specify a language")]
    public int Language { get; set; }
}

Действие контроллера выглядит так:

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult HomeControl(HomeContent homeContent) {
        if (!DatabaseService.Instance.ModifyHomeContent(homeContent)) {
            ViewData["Error"] = "An error occured during saving data to the page.";
        } else {
            ViewData["Error"] = "Changes has been saved!";
        }

        return View();
    }

Я обнаружил, что обтекание if(ModelState.IsValid) { ... } вокруг вызова метода класса обслуживания будет полностью проверять аннотации данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...