asp.net mvc路由 - 多个参数

时间:2012-05-04 12:45:55

标签: asp.net-mvc-3 asp.net-mvc-routing

我刚刚启动了MVC,我可以将ID传递给页面,但似乎无法让我的路由使用两个参数。有没有人有任何想法?

这是我的代码:

全局:

 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

1 个答案:

答案 0 :(得分:3)

ActionLink将使用可以满足您参数的第一条路线。

由于第一个(默认)路线也满足您的参数,因此您需要先将自定义路线放入。