W asp.net MVC „strona główna” (tj. Trasa wyświetlana po wejściu na www.foo.com) jest ustawiona na Home / Index.
- Gdzie jest przechowywana ta wartość?
- Jak mogę zmienić „stronę główną”?
- Czy jest coś bardziej eleganckiego niż użycie RedirectToRoute () w akcji Index kontrolera domowego?
Próbowałem grepować dla Home / Index w moim projekcie i nie mogłem znaleźć odniesienia ani nie mogłem zobaczyć niczego w IIS (6). Spojrzałem na stronę default.aspx w katalogu głównym, ale nie wyglądało to na nic trafnego.
Dzięki
c#
asp.net-mvc
asp.net-mvc-routing
NikolaiDante
źródło
źródło
url: "{controller}/{action}/{id}"
. Po prostu nadaj trasom różne nazwy.ASP.NET Core
Routing jest konfigurowany w
Configure
metodzieStartup
klasy. Aby ustawić „stronę główną”, wystarczy dodać następujące elementy. Spowoduje to przekierowanie użytkowników do kontrolera i akcji zdefiniowanej w metodzie MapRoute, gdy / jeśli przejdą do podstawowego adresu URL Twojej witryny, tj. Twoja_witryna.com przekieruje użytkowników do twoja_witryna.com/foo/index:Pre-ASP.NET Core
Użyj metody RegisterRoutes znajdującej się w App_Start / RouteConfig.cs (MVC 3 i 4) lub Global.asax.cs (MVC 1 i 2), jak pokazano poniżej. Spowoduje to przekierowanie użytkowników do kontrolera i akcji zdefiniowanej w metodzie MapRoute, jeśli przejdą do podstawowego adresu URL Twojej witryny, tj. Twoja_witryna.com skieruje użytkownika do twoja_witryna.com/foo/index:
źródło
Krok 1: Kliknij plik Global.asax w swoim rozwiązaniu.
Krok 2: Następnie przejdź do definicji
RouteConfig.RegisterRoutes(RouteTable.Routes);
Krok 3: Zmień nazwę kontrolera i nazwę widoku
źródło
źródło
sprawdź metodę RegisterRoutes w global.asax.cs - to domyślne miejsce do konfiguracji tras ...
źródło
Routing atrybutów w MVC 5
Przed MVC 5 można było mapować adresy URL do określonych akcji i kontrolerów, wywołując
routes.MapRoute(...)
plik RouteConfig.cs. Tutaj jest przechowywany adres URL strony głównej (Home/Index
). Jeśli jednak zmodyfikujesz trasę domyślną, jak pokazano poniżej,pamiętaj, że wpłynie to na adresy URL innych akcji i kontrolerów. Na przykład, jeśli masz nazwaną klasę kontrolera
ExampleController
i wywołano w niej metodę akcjiDoSomething
, oczekiwany domyślny adres URLExampleController/DoSomething
nie będzie już działać, ponieważ domyślna trasa została zmieniona.Obejściem tego problemu jest uniknięcie bałaganu z domyślną trasą i utworzenie nowych tras w pliku RouteConfig.cs dla innych akcji i kontrolerów, takich jak ten,
Teraz
DoSomething
akcjaExampleController
klasy zostanie odwzorowana na adres URLhey/now
. Ale może to być nudne za każdym razem, gdy chcesz zdefiniować trasy dla różnych działań. Tak więc w MVC 5 możesz teraz dodawać atrybuty, aby dopasować adresy URL do takich działań,źródło
Spróbowałem odpowiedzi, ale to nie zadziałało. Oto, co ostatecznie zrobiłem:
Utwórz nowy kontroler DefaultController. W akcji index napisałem przekierowanie jednej linii:
W RouteConfig.cs zmień kontroler = „Default” dla trasy.
źródło
Jeśli nie chcesz zmieniać routera, po prostu przejdź do HomeController i zmień MyNewViewHere w indeksie w następujący sposób:
źródło