кто делает проверку в базовой программе asp.net mvc + entity - PullRequest
0 голосов
/ 06 января 2010

У меня очень простое приложение ASP.NET MVC с моделью на основе Entity Framework. По сути, просто таблица Product из базы данных AdventureWorks. Контроллер имеет только методы Index и CrUD.

Создать имеет следующее:

        if (!ModelState.IsValid) {
            return View();
        }
        // Save to the database

Некоторые поля обязательны для заполнения в базе данных, и если значения не введены, я получаю сообщение об ошибке (ModelState.IsValid == false). Тем не менее, я хочу предоставить некоторые значения по умолчанию вместо ошибок. Но я не могу понять, как подключиться к проверке модели ... Я играл с "классом метаданных приятеля"; поэтому я знаю, как изменить сообщения об ошибках с помощью аннотаций; но не как «дружить» с процессом валидации.

Если это проясняет ситуацию, я хотел бы установить для ModifiedDate значение DateTime.Now, а для rowguid - значение Guid.NewGuid (). Излишне говорить, что настоящая проблема заключается в большом приложении, но этот пример кажется идеальным изложением того, что я пытаюсь решить.

Я, вероятно, делаю это в контроллере, перемещаясь по ModelState, но должен быть лучший способ.

Это может быть очень простой вопрос ... но я не смог найти примеров, как это сделать.

1 Ответ

0 голосов
/ 06 января 2010

Вероятно, вам нужно исключить некоторые поля из привязки. Пример кода:

[HttpPost]
public ActionResult Create([Bind(Exclude = "rowGuid,ModifiedDate")]Task task)
{
    if (ModelState.IsValid)

Если оно исключено из привязки, оно исключается из проверки. Вы сможете установить его самостоятельно без ошибок модели.

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