ASP.NET MVC не добавляет ModelError при вызове из модульного теста - PullRequest
0 голосов
/ 06 апреля 2010

У меня есть модель

public class EntryInputModel
{
    ...

    [Required(ErrorMessage = "Description is required.", AllowEmptyStrings = false)]
    public virtual string Description { get; set; }
}

и действие контроллера

public ActionResult Add([Bind(Exclude = "Id")] EntryInputModel newEntry)
{
    if (ModelState.IsValid)
    {
        var entry = Mapper.Map<EntryInputModel, Entry>(newEntry);

        repository.Add(entry);
        unitOfWork.SaveChanges();
        return RedirectToAction("Details", new { id = entry.Id });
    }
    return RedirectToAction("Create");
}

Когда я создаю EntryInputModel в модульном тесте, устанавливаю свойство Description на null и передаю его методу действия, я все равно получаю ModelState.IsValid == true, хотя я отладил и подтвердил, что newEntry.Description == null.

Почему это не работает?

1 Ответ

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

Это связано с тем, что привязка модели не происходит, когда вы вызываете действие из теста. Привязка модели - это процесс сопоставления опубликованных значений формы типу и передачи его в качестве параметра методу действия.

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