2012-06-19 3 views
2

У меня есть следующие маршруты:Действие Ссылка на "потерять" параметр

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
  • /Conference/testconf/ShowSubmissions
  • /Conference/testconf/Представление/firstSub
  • /Conference/testconf/Представление/firstSub/EditSubm ission

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

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

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

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

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

ответ

1

Где у вас есть заполнитель для {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 
       ); 

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

1) Creating Custom Routes (C#)

2) Custom routing for ASP .NET MVC

3) official source from asp.net mvc

+0

Мои два маршруты между игнорировать и маршрут по умолчанию вы вывесили, следовало бы упомянуть, что. Я хочу, чтобы контроллер конференции обрабатывал два запроса. Также ссылка должна выглядеть как/Conference/confID/Submission/subID или/Conference/confID. Ссылки работают, я хочу только «вернуть» кнопку из/conf/confid/sub/subid в/conf/confid – Vulcano

+0

Как уже упоминалось, попробуйте повторить ваши маршруты, которые могут определенно помочь. Также посмотрите на пользовательские ссылки маршрута на мой ответ, который поможет. –

+0

при переупорядочивании моего действияLink генерирует следующую ссылку/конференцию/testconf/Show? Submission = firstSub (сначала первое совпадение).Что касается ваших ссылок, я уже создаю свой собственный маршрут, основная проблема, с которой я сейчас сталкиваюсь, - это выйти из подпрограммы в mainroute. Я также редактировал свое другое сопоставление маршрутов в моем вопросе. – Vulcano

Смежные вопросы