Как мне избавиться от дома в ASP.Net MVC? - PullRequest
15 голосов
/ 19 августа 2008

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

Ответы [ 6 ]

16 голосов
/ 19 августа 2008

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

routes.MapRoute(
    "Home",
    "",
    new { action = Index, controller = Home }
);
8 голосов
/ 21 августа 2008

Если вы работаете в 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

6 голосов
/ 15 января 2011

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

1 голос
/ 11 декабря 2014

Я бы добавил

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

в RouteConfig.cs

0 голосов
/ 08 февраля 2015

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

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

routes.MapRoute(
    "Actions",
    "{controller}/{action}",
    new { }
);
0 голосов
/ 22 марта 2013

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

Для более подробной информации проверьте:

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

...