2013-01-20 14 views
89

Jak ustawić Domyślny kontroler dla mojego projektu ASP.NET MVC 4 bez tworzenia go HomeController?Jak ustawić domyślny kontroler w asp.net MVC 4 i MVC 5

Jak skonfigurować domyślny obszar Obszar podczas uruchamiania aplikacji?

+0

jak będzie się zmieniać od „/” na „/ home jako stronę korzeni? Ta "/ home" musi być widoczne w przeglądarce klienta –

Odpowiedz

149

najlepszym sposobem jest zmiana trasy. Trasa domyślna (zdefiniowany w App_Start) ustawia /Home/Index

routes.MapRoute(
     "Default", // Route name 
     "{controller}/{action}/{id}", // URL with parameters* 
     new { controller = "Home", action = "Index", 
     id = UrlParameter.Optional } 
); 

jako domyślnej strony docelowej. Możesz zmienić to na dowolną wybraną trasę.

routes.MapRoute(
     "Default", // Route name 
     "{controller}/{action}/{id}", // URL with parameters* 
     new { controller = "Sales", action = "ProjectionReport", 
     id = UrlParameter.Optional } 
); 
+0

Dzięki, że działa to samo również dla obszarów? –

+12

W MVC 4 domyślna trasa jest ustawiana w App_Start/RouteConfig.cs –

+0

Bardzo prawdziwa Jestem currenlty pracując nad projektami w zarówno i przeoczyć te rzeczy;) –

23

zrobił widzę to pytanie odpowiedział:

Jak należy skonfigurować domyślny Area podczas uruchamiania aplikacji?

Tak, o to w jaki sposób można skonfigurować domyślny Powierzchnia:

var route = routes.MapRoute(
    name: "Default", 
    url: "{controller}/{action}/{id}", 
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
    ).DataTokens = new RouteValueDictionary(new { area = "MyArea" }); 
+1

świetne pytanie, dlaczego go nie stworzysz? – stuartdotnet

+0

Co to jest "obszar"? Jeśli zdefiniuję widok, czy załadowany zostanie układ z odniesieniami, a następnie oddzielne żądanie HTTP z danymi widoku? (tj. oddzielna operacja Ajax) lub czy układ jest renderowany i zawijany wokół mojego widoku? –

+2

@GusCrawford Co to jest "obszar"? Od http://msdn.microsoft.com/en-us/library/ee671793 (VS.100).aspx: Aby dostosować się do dużych projektów, program ASP.NET MVC umożliwia podział aplikacji internetowych na mniejsze jednostki, określane jako obszary. Obszary zapewniają sposób na oddzielenie dużej aplikacji sieciowej MVC na mniejsze grupowania funkcjonalne. Obszar jest w rzeczywistości strukturą MVC wewnątrz aplikacji. Aplikacja może zawierać kilka struktur (obszarów) MVC. –

23

ustawiona poniżej kod w RouteConfig.cs w App_Start folderu

public static void RegisterRoutes(RouteCollection routes) 
{ 
routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
routes.MapRoute(
name: "Default", 
url: "{controller}/{action}/{id}", 
defaults: new { controller = "Account", action = "Login", id = UrlParameter.Optional }); 
} 

jeżeli wciąż nie następnie wykonaj poniższe czynności:

Drugi sposób: Ty prosty wykonaj poniższe kroki,

1) Kliknij prawym przyciskiem myszy na rozwiązanie projektu

2) Wybierz obiekt

3) Wybierz opcję Web, a następnie wybrać określoną stronę (Controller/View), a następnie ustawić swoją stronę logowania

Tutaj jest moje konto i kontroler Logowanie jest moja metoda działania (zapisany w kontroler Account)

Proszę tAK Wygląda na załączony zrzut ekranu enter image description here.

+13

Twoja "druga droga" dotyczy tego, co dzieje się podczas debugowania twojego projektu internetowego. Nie ma to nic wspólnego z "kontrolerem domyślnym", tj. Z jaką stroną jest wyświetlana po przejściu do strony docelowej witryny. –

0

W przypadku masz tylko jeden kontroler i chcesz uzyskać dostęp do wszelkich działań na korzeniu można pominąć nazwę kontrolera jak ten

routes.MapRoute(
     "Default", 
     "{action}/{id}", 
     new { controller = "Home", action = "Index", 
     id = UrlParameter.Optional } 
); 
Powiązane problemy