使用两个路由mvc 2时URL参数中的问号

时间:2011-12-22 00:57:28

标签: asp.net-mvc-2 routes url-parameters

我有两条路线,当我使用默认路线时,它会在参数中显示带有问号的网址。我正在 Editar / id?3 - 而不是 Editar / id / 3 。另一条路线工作正常,你能不能给我一些启发。谢谢。

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 - 错误的网址 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> 

1 个答案:

答案 0 :(得分:0)

您的第一条路线比第二条路线更贪婪,除非您使用某些限制条件,否则它将匹配所有网址。另一种可能性是使用RouteUrl帮助程序并指定路由的名称:

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