2012-04-12 3 views
0

J'essaie d'utiliser une méthode RedirectToAction après une action d'auto-envoi (qui passe IsValid). La redirection se passe bien mais le paramètre que l'on tente de transmettre à l'action est toujours nul.RedirectToAction et Routing ne passant pas correctement le paramètre

[HttpPost] 
public ActionResult UploadForm(UploadFormViewModel formVM) 
{ 
     if (!ModelState.IsValid) 
     { 
      return View(formVM); 
     } 

     return RedirectToAction("UploadConfirm", new { confirmVM = new UploadConfirmViewModel() }); 
} 

public ActionResult UploadConfirm(UploadConfirmViewModel confirmVM) 
{ 
     return View(confirmVM); 
} 

Et voici mon routage

 routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

     routes.MapRoute(
      "UploadConfirm", 
      "{controller}/{action}/{confirmVM}", 
      new { controller = "EnrollmentUpload", action = "UploadConfirm" } 
      ); 

     routes.MapRoute(
      "Default", // Route name 
      "{controller}/{action}/{id}", // URL with parameters 
      new { controller = "EnrollmentUpload", action = "UploadForm", id = UrlParameter.Optional } // Parameter defaults 
     ); 

Répondre

2

Retirez le new{} dans votre déclaration de retour:

return RedirectToAction("UploadConfirm", new UploadConfirmViewModel()); 

je aussi ne pas ajouter une route supplémentaire à la RouteCollection

+0

travaillé, Merci beaucoup. – EkoostikMartin

Questions connexes