0

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

全球.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> 
4

1 回答 1

0

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

<%= Url.RouteUrl("Default", new { action = "Editar", id = item.galeria_id }) %>
于 2011-12-22T11:31:15.320 回答