2009-06-18 6 views
1

Je vais avoir un problème où mes messages de validation font leur apparition bien sur une opération d'ajout, mais quand il vient à la page de mise à jour, les messages de validation ne sont pas affichés:MVC Html.ValidationMessage pas tirer sur la mise à jour

Ceci est mon action, IsValid est faux et l'action redirige vers la vue d'édition, mais aucun des messages de validation n'est affiché. Y a-t-il quelque chose qui ne va pas dans mon approche?

[Authorize] 
    public ActionResult UpdateCar(CarDTO car) 
    { 
     try 
     { 
      _carTask.Update(car); //required Name field not set 
     } 
     catch (RulesException ex) 
     { 
      ex.AddModelStateErrors(ModelState, null); 
     } 

     if (!ModelState.IsValid) 
     { 
      return RedirectToAction(ViewNames.EditCar, new {carKey = car.carKey}); 
     } 
     return RedirectToAction(ViewNames.Home, new {carKey = car.carKey}); 
    } 


<li> 
    <label for="Name">Car Name:</label> 
    <%= Html.TextBoxFor(x => x.Name, new { watermark="Car Name" })%> 
     <br /> 
     <%= Html.ValidationMessage("Name") %> 
</li> 

Répondre

2

Si le formulaire n'est pas valide, vous êtes redirigé vers une nouvelle page qui perdra toutes les valeurs d'erreur modale que vous avez définies. Au lieu de cela, renvoyez simplement la vue. N'a pas vérifié la syntaxe, mais quelque chose comme ci-dessous.

if (!ModelState.IsValid) 
{ 
    return View(ViewNames.EditCar, new {carKey = car.carKey}); 
} 

return RedirectToAction(ViewNames.Home, new {carKey = car.carKey}); 
Questions connexes