Создание URL с помощью asp.net MVC и RouteUrl - PullRequest
3 голосов
/ 14 декабря 2008

Я хотел бы получить текущий URL и добавить дополнительный параметр к URL (например,? Id = 1)

Я определил маршрут:

        routes.MapRoute(
            "GigDayListings",                                   // Route name
            "gig/list/{year}/{month}/{day}",                    // URL with parameters
            new { controller = "Gig", action = "List" }         // Parameter defaults
        );

        In my view I have a helper that executes the following code: 

        // Add page index
        _helper.ViewContext.RouteData.Values["id"] = 1;

        // Return link
        var urlHelper = new UrlHelper(_helper.ViewContext);
        return urlHelper.RouteUrl( _helper.ViewContext.RouteData.Values);

Однако это не работает.

Если мой оригинальный URL был: гиг / список / 2008/11/01

Я получаю

гиг / список /? Год = 2008 & месяц = ​​11 & день = 01 & ID = 1

Я бы хотел, чтобы URL был: контроллер / действие / 2008/11 / 01? ID = 1

Что я делаю не так?

1 Ответ

1 голос
/ 14 декабря 2008

Порядок правил имеет смысл. Попробуйте вставить это правило первым.

Также не забудьте определить ограничения, если необходимо - это приведет к лучшему соответствию правилам:

routes.MapRoute(
    "GigDayListings",                                // Route name
    "gig/list/{year}/{month}/{day}",                // URL with parameters
    new { controller = "Gig", action = "List" },    // Parameter defaults
    new
        {
            year = @"^[0-9]+$",
            month = @"^[0-9]+$",
            day = @"^[0-9]+$"
        }    // Constraints
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...