2011-12-22 56 views
0

我有兩條路由,當我使用默認路由時,它在參數中顯示帶有問號的URL。我得到編輯/編號?3 - 而不是編輯/編號/ 3。另一條路線工作正常,你能否給我點光明。謝謝。使用兩條路由時URL參數中的問號mvc 2

的Global.asax

public class MvcApplication : System.Web.HttpApplication 
{ 
    public static void RegisterRoutes(RouteCollection routes) 
    { 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

     routes.MapRoute(
      "GaleriaCustom", // Route name 
      "{controller}/{action}/{categoria}/{subCategoria}", // URL with parameters 
      new { controller = "Galeria", action = "Index", categoria = "Noivinhos", subCategoria = UrlParameter.Optional } // Parameter defaults 
     ); 

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



    } 

    protected void Application_Start() 
    { 
     AreaRegistration.RegisterAllAreas(); 

     RegisterRoutes(RouteTable.Routes); 
    } 
} 

的Index.aspx - 錯誤的URL Editar/ID 3 - 而不是Editar/ID/3

<a href="<%: Url.Action("Editar", new{ id = item.galeria_id }) %>"><img src="<%: Url.Content("~/Content/Img/Design/editar.png") %>" alt="Editar" title="Editar"/></a> 
<a href="<%: Url.Action("Detalhe", new { id=item.galeria_id }) %>"><img src="<%: Url.Content("~/Content/Img/Design/detalhe.png") %>" alt="Detalhe" title="Detalhe"/></a> 
<a href="<%: Url.Action("Excluir", new { id=item.galeria_id }) %>"><img src="<%: Url.Content("~/Content/Img/Design/delete.png") %>" alt="Excluir" title="Excluir"/></a> 

回答

0

你的第一個路徑更加貪婪比第二,除非你使用一些限制,它會匹配所有的網址。另一種可能性是使用RouteUrl助手,並指定路由的名稱:

<%= Url.RouteUrl("Default", new { action = "Editar", id = item.galeria_id }) %> 
+0

感謝您的迴應,它固定在鏈接的URL,但鏈接不工作的時候,我有現在這個問題時,我單擊(_The參數字典包含'TudoDeMassinha.Controllers.AdminGaleriaController'中方法'System.Web.Mvc.ActionResult Editar(Int32)'的非空類型'System.Int32'的參數'id'的空項。可選參數必須是引用類型,可爲空類型_) – Marcio 2011-12-22 12:33:28