Как избавиться от Home в ASP.Net MVC?

Я знаю, что этот сайт написан с использованием ASP.Net MVC, и я не вижу "/Home" в URL-адресе. Это доказывает мне, что это можно сделать. Какой специальный маршрут и мне нужен?

Ответы

Ответ 1

Просто измените "Домой" на пустую строку.

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

Ответ 2

Если вы работаете в IIS 7, вы можете просто удалить файл Default.aspx, который поставляется с ASP.NET MVC (при условии, что вы работаете на Preview 3 или выше). Этот файл был необходим из-за проблемы с Cassini, которая была исправлена ​​в .NET 3.5 SP1. Подробнее:

http://haacked.com/archive/2008/04/10/upcoming-changes-in-routing.aspx а также http://haacked.com/archive/2008/05/12/sp1-beta-and-its-effect-on-mvc.aspx

Ответ 3

Мне действительно нравится, что все мои домашние методы управления находятся в корне сайта. Например:/about,/contact и т.д. Я думаю, что я придирчив. Для этого я использую простое ограничение маршрута. Вот мой пост в блоге с образцом кода.

Ответ 4

Я бы добавил

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

в RouteConfig.cs

Ответ 5

Это то, что я сделал, чтобы избавиться от дома. Он будет обрабатывать все маршруты только с одним спецификатором Home/Action и любым с двумя в качестве Controller/Action. Недостатком является то, что контроллер должен иметь явный индекс (/Controller!=/Controller/Index), но он может помочь вам или другим пользователям.

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

routes.MapRoute(
    "Actions",
    "{controller}/{action}",
    new { }
);

Ответ 6

В IIS 7 вы можете просто удалить файл Default.aspx, который поставляется с ASP.NET MVC (при условии, что вы работаете на Preview 3 или выше). Этот файл был необходим из-за проблемы с Cassini, которая была исправлена ​​в .NET 3.5 SP1.

Подробнее:

Предстоящие изменения в маршрутизации и .NET 3.5 SP1 Beta и ее эффект на MVC