2016-04-10 2 views
1

текущий маршрут Config для меня это, я думаю, это по умолчанию одинконфигурации маршрута в MVC

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

Когда я пишу

www.mypage.com 
www.mypage.com/home 

я получаю ту же страницу

Как Могу ли я сделать это так, чтобы они составляли две отдельные страницы

www.mypage.com 

является домашней страницы, и

www.mypage.com/home 

еще одна страница

ответ

1

www.mypage.com может быть обработчик корневым контроллером и все остальные маршруты будут обрабатываться маршрут по умолчанию.

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

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

Явные значения по умолчанию позволяют использовать поведение, которое вы сейчас видите.

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

public class RootController : Controller {  
    public ActionResult Index() { 
     return View(); 
    } 
} 

И не забудьте создать соответствующий вид для вашего контроллера.

+0

Отлично! Это сработало, но где я теперь помещаю представление на www.mypage.com? – user3623300

+0

Возможно, мне нужно будет отредактировать мой ответ. Вам все равно необходимо создать контроллер по умолчанию для вашего корневого URL-адреса – Nkosi

0

Не нужно создавать новый контроллер. вы можете использовать тот же домашний контроллер. В Home Controller создайте 2 действия - Default и Index. В Routeconfig использовать -

routes.MapRoute(
      name: "RootDef", 
      url: "", 
      defaults: new { controller = "Home", action = "Default", id = UrlParameter.Optional } 
     );  
routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 
Смежные вопросы