2014-01-07 4 views
0

У меня есть сайт MVC с отдельной областью для раздела моего администратора.Явное определение маршрутов в MVC actionlink?

Пытается создать ActionLink с RouteValues, и это проблематично.

Вот мой глобальный для конкретной страницы (обратите внимание, что я должен указать расположение контроллера для них работать):

routes.MapRoute(
       "HomeEditStep1", 
       "EditStep1", 
       new { controller = "Home", action = "EditStep1", id = UrlParameter.Optional }, // Parameter defaults 
        new string[] { "MyProject.Web.Controllers" } 
      ); 

Если я ремесло ссылку так:

@Html.ActionLink("Edit", "EditStep1", "Home"); 

ссылка приведет меня к этой странице соответствующим образом. Но если добавить Params, по мере необходимости:

@Html.ActionLink("Edit", "EditStep1", "Home", new { id = page.PageDetailGuid.ToString() }, new { @class = "btn lightblue" }); 

Тогда, кажется, игнорируют Global и возвращает это, указывая на услугу по какой-то причине? /Услуги/AccountService действие = EditStep1 & контроллер = Главная & ид = 84ac76cd-fcb0-444b-adab-c0c041a81c1a

Поэтому мне это нужно/EditStep1/84ac76cd-fcb0-444b-adab-c0c041a81c1a.

У меня есть маршруты.IgnoreRoute ("{service} .svc/{* pathInfo}"); определяемых в глобальном масштабе.

Вопрос в том, нужно ли явно указывать MyProject.Web.Controllers как-то в маршрутах?

Спасибо! Брэд

ответ

1

в вашем определении маршрута, вам необходимо включить параметры, дать что-то вроде этого попробовать

routes.MapRoute(
       "HomeEditStep1", 
       "EditStep1/{id}", 
       new { controller = "Home", action = "EditStep1", id = UrlParameter.Optional }, // Parameter defaults 
        new string[] { "MyProject.Web.Controllers" } 
      ); 

контроллер должен быть подобран из маршрута по умолчанию, но вы не даете RouteEngine каким-либо образом построить маршрут, поэтому он технически использует маршрут по умолчанию, который, как я предполагаю, вы удалили (поскольку мы не можем увидеть всю вашу таблицу маршрутизации)

+1

Недостающее звено! Благодаря! –

+0

рад помочь ... всегда берет только второй набор глаз :) –

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