2013-01-20 20 views

risposta

149

il modo migliore è quello di modificare il percorso. Il percorso di default (definito nel App_Start) imposta /Home/Index

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

come pagina di destinazione predefinita. Puoi cambiarlo per essere qualsiasi percorso tu desideri.

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

Grazie funziona allo stesso modo anche per Aree? –

+12

In MVC 4 il percorso predefinito è impostato su App_Start/RouteConfig.cs –

+0

Molto vero. Sto lavorando su progetti in corso entrambi e trascurare queste cose;) –

23

non ho visto questa domanda ha risposto:

Come mettermi a configurare un'impostazione predefinita Area all'avvio dell'applicazione?

Quindi, ecco come è possibile impostare uno spazio predefinito:

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

ottima domanda, perché non la crei come una sola? – stuartdotnet

+0

Cos'è una 'Area'? Se definisco una vista, il layout di riferimento è caricato e quindi una richiesta HTTP separata con i miei dati di visualizzazione? (cioè operazione Ajax separata) o il layout è reso e avvolto attorno alla mia vista? –

+2

@GusCrawford Che cos'è una 'Area'? Da http://msdn.microsoft.com/en-us/library/ee671793(VS.100).aspx: Per ospitare progetti di grandi dimensioni, ASP.NET MVC consente di suddividere le applicazioni Web in unità più piccole indicate come le zone. Le aree forniscono un modo per separare una grande applicazione Web MVC in raggruppamenti funzionali più piccoli. Un'area è effettivamente una struttura MVC all'interno di un'applicazione. Un'applicazione potrebbe contenere diverse strutture MVC (aree). –

23

Situato proprio sotto il codice a RouteConfig.cs in App_Start cartella

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 }); 
} 

se non ancora funziona quindi sotto i passaggi

Seconda Way: È semplice seguire la procedura,

1) Fare clic destro sul vostro soluzione di progetto

2) Selezionare Proprietà

3) Selezionare l'opzione Web, quindi selezionare pagina specifica (Controller/View) e quindi impostare la pagina di accesso

Qui, account è mio regolatore e al login è il mio metodo di azione (salvato nel controller account)

si prega di tak e uno sguardo allegato enter image description here screenshot.

+13

La tua "seconda via" riguarda ciò che accade quando esegui il debug del tuo progetto web. Non ha nulla a che fare con il "controller predefinito", cioè quale pagina viene mostrata quando si accede alla pagina di destinazione del proprio sito. –

0

Nel caso in cui si ha un solo controller e si desidera accedere ogni azione sulla radice si può saltare nome del controller come questo

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