Действие Ссылка на потерю параметра

У меня есть следующие маршруты:

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(null,"Conference/{shortName}/Submission/{submission}/{action}", new { controller = "Conference", action = "Show" });
routes.MapRoute(null,"Conference/{shortName}/{action}",new { controller = "Conference", action = "Index" });
routes.MapRoute("Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
        );

Следующие (надеюсь, очевидные) ссылки, которые все работают:

  • / Конференция / testconf
  • / Конференция / testconf / ShowSubmissions
  • / Конференция / testconf / Представление / firstSub
  • / Конференция / testconf / Submission / firstSub / EditSubmission

Когда я сейчас в Submission / firstSub и создаю ActionLink, как это

@Html.ActionLink("Show Submissions", "ShowSubmissions", "Conference", new { shortName = Model.confereceShortName },null)

он создает следующую ссылку

  • / Конференция / testconf / Submission / firstSub / ShowSubmissions

Как я могу позволить ссылке действия забыть о Submission / firstSub без жесткого программирования?


person Vulcano    schedule 19.06.2012    source источник


Ответы (2)


Где у вас есть заполнитель для {controller}?

Маршрут по умолчанию должен выглядеть, как в следующем примере.

 routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                "Default", // Route name
                "{controller}/{action}/{*id}", // URL with parameters
                new {controller = "Home", action = "Index", id = UrlParameter.Optional} // Parameter defaults
                );

Также попробуйте удалить часть / Submission / в своем первом маршруте. Ссылки на посты о создании и заказе пользовательских маршрутов:

1) Создание Пользовательские маршруты (C #)

2) Пользовательская маршрутизация для ASP .NET MVC < / а>

3) официальный источник asp.net mvc

person Yusubov    schedule 19.06.2012
comment
Мои два маршрута находятся между игнорированием и маршрутом по умолчанию, который вы опубликовали, надо было упомянуть об этом. Я хочу, чтобы контроллер конференции обрабатывал только два запроса. Также ссылка должна иметь вид / Conference / confID / Submission / subID или / Conference / confID. Ссылки работают, мне нужна только кнопка возврата из / conf / confid / sub / subid в / conf / confid - person Vulcano; 19.06.2012
comment
Как уже упоминалось, попробуйте изменить маршруты, которые определенно могут помочь. Также посмотрите ссылки на настраиваемые маршруты в моем ответе, которые помогут. - person Yusubov; 19.06.2012
comment
при переупорядочивании моего actionLink генерируется следующая Link / Conference / testconf / Show? submission = firstSub (потому что теперь совпадает первая). Что касается ваших ссылок, я уже создал свой собственный маршрут, основная проблема, с которой я сейчас сталкиваюсь, - это выход из подпроцесса на основной. В своем вопросе я также отредактировал другое отображение маршрута. - person Vulcano; 20.06.2012

Иногда поиска 30 минут недостаточно, нужно искать 2 часа ...

ASP. NET MVC 2 RC2 Routing - Как очистить значения низкого уровня при использовании ActionLink для ссылки на более высокий уровень?

Перенаправить или удалить значения в ограничениях. Для меня Routelink делает эту работу.

Хотя спасибо

ЭльЮсубов и Алексей

person Vulcano    schedule 20.06.2012