2011-12-22 57 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