2009-02-28 4 views
0

My HomeController контролирует некоторые страницы, такие как «Индекс», а некоторые другие - «Контакт», «О нас».Как я могу заставить действия работать в HomeController без ввода «Главная»?

Но, если я типа:

www.blabla.com/ 

'Index' будет называться и она работает.

Но, если я типа:

www.blabla.com/AboutUs 

он не работает на всех! Он просто работает, если я типа:

www.blabla.com/Home/AboutUs 

Как я могу сделать все действия в HomeController работу без ввода «Home» перед ними?

ответ

4

Вы должны сделать маршрут, который выглядит следующим образом.

routes.MapRoute("AboutUs", "AboutUs", 
       new 
       { 
        controller = "Home", 
        action = "AboutUs" 
       }); 

Вы можете найти маршруты в файле Global.asax.

Причина этого в том, что если вы проверяете свой файл Global.asax, вы должны увидеть маршрут по умолчанию, который работает на маршруте URL-адреса контроллера/действия. Поэтому, если вы хотите/MyMethod, вам нужно создать для него маршрут.

Вы также можете попробовать что-то вроде.

routes.MapRoute("HomeActions", "{action}", 
       new 
       { 
        controller = "Home", 
        action = "Index" 
       }); 

Это должно позволить вам получить доступ ко всем действиям вашего домашнего контроллера, просто используя /.

+0

Спасибо вам за ответ Чад! Но, еще один вопрос, основанный на том, что вы мне сказали ... если у меня есть 10 страниц в моем HomeController, мне нужно будет создать 10 новых маршрутов? Разве нет способа сказать, что все действия в HomeController будут доступны без «Home /» ?? – AndreMiranda

+0

спасибо, Чад !! То, что вы сказали мне ниже «Вы могли бы попробовать что-то вроде« просто отлично работали! Спасибо, мужик! – AndreMiranda