2013-06-04 8 views
12

Sto imparando a utilizzare un'applicazione MVC 4 ma sono nuovo alla piattaforma mvc. Se stavo imparando una nuova applicazione Java, inizierei a leggere il codice dal metodo principale e andare da lì. Qual è l'analogico per un'applicazione asp.net mvc?qual è il punto di ingresso per un'applicazione asp.net mvc 4?

lancio l'applicazione dal seguente URL: http://server/directory/home?iv-user=tuser

+1

@ akh2013 - Sospetto, ma non sono sicuro, che ciò che si sta chiedendo è qual è la prima riga di esecuzione per un'applicazione ASP.NET MVC all'avvio. Se sono corretto, una delle risposte che fa riferimento a Application_Start() in global.asax deve essere contrassegnata come accettata. In caso contrario, e si desidera sapere quale codice viene eseguito quando un client effettua una chiamata all'applicazione e l'applicazione elabora la richiesta, la risposta contrassegnata come accettata ha senso. – Matt

+0

istruzione "riferimenti Application_Start() in global.asax deve essere contrassegnato come accettato.", Potrebbe essere un po 'di confusione se si legge microsoft link http://msdn.microsoft.com/en-us/library/2027ewzw(v=vs. 100) .aspx che inizia con "Il file Global.asax, noto anche come file di applicazione ASP.NET, è un file OPZIONALE che contiene ...". Ora sorge la domanda su come un file opzionale viene accettato quando l'avvio di un'applicazione non lo è. Spero tu abbia capito. Il punto di partenza non può essere facoltativo in termini di punto di partenza. – AKS

risposta

1

È HTTP. Si effettua una richiesta al server Web per una risorsa, come specificato sopra, e il controller risponde.

Quindi in ASP.NET MVC sono presenti più punti di accesso: ogni metodo di azione.

MSDN Controllers and Action Methods in ASP.NET MVC

0

Nel caso hai dato, se si vuole trovare il primo bit di codice non-quadro che viene eseguito, si dovrebbe guardare per HomeController.cs nel Controllers directory e cercare il metodo Index o Default che accetta un parametro di iv-user.

Per visualizzare l'intero ciclo di vita della pagina, vedere qui: http://www.red-gate.com/products/dotnet-development/ants-performance-profiler/entrypage/be-ahead-of-the-game-poster2. Questo ti porta dalla richiesta HTTP in arrivo alla vista renderizzata finale.

23

Il file Global.asax.cx, dove esiste il metodo di avvio Application_Start, potrebbe essere quello che stai cercando. Questo è il codice che viene eseguito all'avvio dell'app.

protected void Application_Start() 
{ 
    ... 
    RouteConfig.RegisterRoutes(RouteTable.Routes); 
    ... 
} 

Ma guardando l'url che hai postato potrebbe essere il file HomeController o DirectoryController. Purtroppo non riesco a capire dal tuo percorso.

Un codice di registro percorso del campione è come sotto dove possiamo vedere che

  1. Il/{Controller} URL/{action}/{id}

  2. L'impostazione predefinita per il controller/action/id è Home/Indice/opzionale

Quindi, se si esegue il web con l'url che comincia come http://localhost:52763/, si è infatti chiamerà http://localhost:52763/Home/Index

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

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

C'è un metodo application_start() in global.asax.cs. Per quanto riguarda la preoccupazione del controllore per la richiesta, la sua inizia nel costruttore del controller, quindi il metodo per l'azione richiesta.

0

MR P.Campbell era giusto. Per maggiori dettagli si prega di rivedere come: http://msdn.microsoft.com/en-us/library/dd381612(v=vs.98).aspx

ho copiato il suo contenuto principale:

intesa MVC di esecuzione di applicazione

richieste a un'applicazione ASP.NET MVC-based prima passare attraverso l'oggetto UrlRoutingModule, che è un modulo HTTP. Questo modulo analizza la richiesta ed esegue la selezione del percorso. L'oggetto UrlRoutingModule seleziona il primo oggetto del percorso che corrisponde alla richiesta corrente.(Un oggetto route è una classe che implementa RouteBase ed è in genere un'istanza della classe Route.) Se nessuna route corrisponde, l'oggetto UrlRoutingModule non fa nulla e consente alla richiesta di tornare al normale processo di richiesta di ASP.NET o IIS. Dall'oggetto Route selezionato, l'oggetto UrlRoutingModule ottiene un oggetto che implementa l'interfaccia IRouteHandler e che è associato all'oggetto Route. In genere, in un'applicazione MVC, questa sarà un'istanza della classe MvcRouteHandler. L'istanza MvcRouteHandler crea un oggetto MvcHandler che implementa l'interfaccia IHttpHandler. L'oggetto MvcHandler seleziona quindi il controller che gestirà la richiesta. Per ulteriori informazioni, vedere Routing ASP.NET.

Problemi correlati