2012-05-04 5 views
0

Je viens de démarrer MVC et je peux passer un ID à une page, mais je n'arrive pas à faire fonctionner mon routage avec deux paramètres. Est-ce que quelqu'un a des idées pourquoi?asp.net mvc routing - Paramètres multiples

Voici mon code:

mondial:

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




    routes.MapRoute(
    "EditVoucher",            // Route name 
    "{controller}/{action}/{id}/{userid}",       // URL with parameters 
    new { controller = "Admin", action = "EditVoucher", id = "", userid = "" } // Parameter defaults 
    );  


**My controller:** 

[HttpGet] 
public ActionResult EditVoucher(int ID, int UserID) 
{ 
} 


**my link:** 

@Html.ActionLink("[Edit]", "EditVoucher", new { Controller = "Admin", id = item.ID, userid = 2 }) 



this passes through the values fine but I end up with this sort of URL: 

**/Admin/EditVoucher/2?userid=2** 

thanks 
+0

Comment finissez-vous avec cette URL? – SLaks

+0

Huh? De quoi parlez-vous? De quoi est venue cette URL? – SLaks

+0

en utilisant le lien d'action – Funky

Répondre

3

ActionLink utilisera la première route qui peut satisfaire vos paramètres. Etant donné que la première route (par défaut) satisfait également vos paramètres, vous devez d'abord mettre l'itinéraire personnalisé en premier.

+0

J'ai déjà essayé cela et l'erreur suivante lors du démarrage du site: Le dictionnaire de paramètres contient une entrée null pour le paramètre 'ID' de type non-nullable 'System.Int32' pour la méthode 'System.Web.Mvc.ActionResult EditVoucher (Int32 , Int32) 'dans' Vouchers.Admin.UI.Controllers.AdminController '. Un paramètre facultatif doit être un type de référence, un type Nullable ou être déclaré en tant que paramètre facultatif. Nom du paramètre: paramètres – Funky

+0

Mon erreur mate, je l'ai encore essayé mais j'ai ajouté le nom de l'action et du contrôleur, merci beaucoup! – Funky