Я нахожусь в разделе «Обработка ошибок редактирования» (стр. 67) в главе 1 книги Professional ASP.NET MVC 1.0, и у меня возникла проблема.
Проблема в том, что когда я редактирую ужин и нажимаю кнопку «Сохранить», он не улавливает никаких ошибок формы, хотя я оставил заголовок пустым. Ни UpdateModel (ужин), ни ужинRepository.Save () не выдает ошибку.
Когда я проверяю БД после сохранения, поле Заголовок действительно пусто. Как это может произойти без выдачи ошибки?
Любая помощь будет оценена. Изменить код ниже:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(int id, FormCollection formValues)
{
Dinner dinner = dinnerRepository.GetDinner(id);
try
{
UpdateModel(dinner);
dinnerRepository.Save();
return RedirectToAction("Details", new { id = dinner.DinnerID });
}
catch
{
foreach (var issue in dinner.GetRuleViolations())
{
ModelState.AddModelError(issue.PropertyName, issue.ErrorMessage);
}
return View(dinner);
}
}
Обнаружил проблему - это была ошибка N00B с моей стороны. По какой-то странной причине у меня был закомментирован следующий код:
partial void OnValidate(ChangeAction action)
{
if (!IsValid)
throw new ApplicationException("Rule violations prevent saving");
}
Не удивительно, что это не ловило ошибки ...
Спасибо RememberMe за попытку помочь! Я ценю это.