1

У меня есть два разных MapRoutes в Route.config следующим образом ...Как маршрут от одного контроллера способа действия к другому способу действия контроллера без отображения имени контроллера в MVC 5

routes.MapRoute(
    name: "Default", 
    url: "{action}", 
    defaults: new { controller = "Index",action = "Index", id = UrlParameter.Optional } 
); 

routes.MapRoute(
    name: "SubjectRoute", 
    url: "{action}", 
    defaults: new { controller = "Subjects", action = "Subjects" } 
); 

и мой @HTML.ActionLink выглядит следующим образом в Index методе действия, который находится в IndexController

@Html.ActionLink("SUBJECTS", "Subjects","Subjects", new { }, new { @class = "text" }) 

Теперь, когда я нажимаю на ПРЕДМЕТЫ ссылки в индексном методе действия, он должен идти к субъектам действию в контроллере Субъекты с отображением из имени контроллера в URL.

Как это можно сделать?

+0

Вы наклоняете - ваши маршруты должны быть в состоянии отличить (и оба путь вы показали одинаковый - они оба состоят из одного сегмента) –

+0

Есть ли другой способ достичь этого? – chaitanya

+1

Вам нужно что-то отличить от разных контроллеров. –

ответ

0
routes.MapRoute(
    name: "SubjectRoute", 
    url: "Subjects", 
    defaults: new { controller = "Subjects", action = "Subjects" } 
); 

routes.MapRoute(
    name: "Default", 
    url: "{action}/{id}", 
    defaults: new { controller = "Index",action = "Index", id = UrlParameter.Optional } 
); 

С выше, вызовы

@Html.ActionLink("SUBJECTS", "Subjects","Subjects", new { }, new { @class = "text" }) 

должен генерировать

/Subjects 

по умолчанию и более общий маршрут теперь будет ловить все другие запросы и направляет их в IndexController который теперь действует как корень сайта/индекс.

, например, предполагающей

public class IndexController : Controller { 
    public ActionResult Index() {...} 
    public ActionResult ContactUs() {...} 
    public ActionResult About() {...} 
} 

доступных маршрутов на основе выше контроллере

/ 
/Index 
/ContactUs 
/About 
+0

Благодарим вас за информацию. Я работаю над этим. – chaitanya

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