Вопросительный знак в параметре URL при использовании двух маршрутов mvc 2 - PullRequest
0 голосов
/ 22 декабря 2011

У меня есть два маршрута, когда я использую маршрут по умолчанию, он показывает URL с вопросительным знаком в параметре.Я получаю 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 - неправильный 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> 

1 Ответ

0 голосов
/ 22 декабря 2011

Ваш первый маршрут более жадный, чем второй, и если вы не используете некоторые ограничения, он будет соответствовать всем URL-адресам. Другая возможность - использовать помощник RouteUrl и указать название маршрута:

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