2009-03-29 6 views
0

J'ai une action de contrôleur comme ceci:ModelState sans champ?

[ActionName("Create"), AcceptVerbs(HttpVerbs.Post)] 
public ActionResult Save([Bind(Exclude="Id")]Project project) 
{ 
    try 
    { 
     _projectRepository.Save(project); 
     return RedirectToAction("Details", new { id = project.Id }); 
    } 
    catch (PropertyValueException ex) 
    { 
     ModelState.AddModelError(ex.PropertyName, ex.Message); 
     return View(); 
    } 
    catch (Exception ex) 
    { 
     ModelState.AddModelError("", ex); 
     return View(); 
    } 
} 

Le code pour gérer PropertyValueException fonctionne très bien: l'erreur est affiché par Html.ValidationSummary, et l'erreur est affiché à côté du domaine concerné correctement. Avec le second bloc catch, j'essayais de répondre (par exemple) aux violations de contraintes en double, et je voulais que l'exception soit affichée dans le résumé de validation (elle ne peut pas être affichée à côté d'un champ particulier, parce que je ne pas avoir cette information). Ça ne marche pas.

Qu'est-ce que je fais mal?

Répondre

Questions connexes