NerdDinner Обработка исключений
Я работаю с примером NerdDinner ASP.NET MVC 1.0.
У меня все это работает отдельно от обработки исключений. Я немного изменил его для собственной выгоды, но в основном, когда я создаю новую запись, которая нарушает правило проверки, я получаю исключение ApplicationException вместо формы, выделяющей неправильное поле.
partial void OnValidate(ChangeAction action)
{
if (!IsValid)
throw new ApplicationException("Rule violations prevent saving");
}
.. в основном код поступает сюда (генерирует новое исключение), а затем VS прерывается на исключение.
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(int id, FormCollection formValues)
{
Customer c = customerRepository.GetCustomer(id);
try
{
UpdateModel(c);
customerRepository.Save();
return RedirectToAction("Details", new { id=c.CustomerId });
}
catch
{
ModelState.AddRuleViolations(c.GetRuleViolations());
return View(c);
}
}
Может ли кто-нибудь рисковать тем, что я сделал неправильно?
РЕДАКТИРОВАТЬ: Я должен добавить, что я просмотрел несколько связанных постов здесь, на SO, но ни один не был совершенно такой же проблемой, насколько я мог видеть.
1 ответ
Я думаю, что это правильно. Но вы также можете использовать свойство ModelState.IsValid
чтобы избежать выбрасывания исключения.
Смотрите эти ссылки тоже: