2012-05-04 128 views
0

我剛剛啓動了MVC,我可以通過一個ID到一個頁面,但似乎無法讓我的路由使用兩個參數。有沒有人有任何想法爲什麼?asp.net mvc routing - 多個參數

這裏是我的代碼:

全球:

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

你最終如何獲得該URL? – SLaks

+0

咦?你在問什麼?那個網址是從哪裏來的? – SLaks

+0

使用操作鏈接 – Funky

回答

3

ActionLink將使用能夠滿足您的參數,第一個途徑。

由於第一條(默認)路線也滿足您的參數,因此您需要先放置自定義路線。

+0

我已經試過,並且在啓動站點時出現以下錯誤:參數字典中包含對於方法'System.Web.Mvc.ActionResult EditVoucher(Int32)的非空類型'System.Int32'的參數'ID'的空條目'Vouchers.Admin.UI.Controllers.AdminController'中的'Int32')。可選參數必須是引用類型,可爲空類型,或者聲明爲可選參數。 參數名稱:參數 – Funky

+0

我的錯誤隊友,我再次嘗試,但添加了行動和控制器的名稱,非常感謝! – Funky