2013-06-04 14 views
12

Ich lerne mich in einer MVC 4-Anwendung aus, bin aber neu in der mvc-Plattform. Wenn ich eine neue Java-Anwendung lernen würde, würde ich beginnen, Code von der Hauptmethode zu lesen und von dort zu gehen. Was ist das Analog für eine asp.net mvc-Anwendung?Was ist der Einstiegspunkt für eine asp.net mvc 4-Anwendung?

ich starten Sie die Anwendung aus der folgenden URL: http://server/directory/home?iv-user=tuser

+1

@ akh2013 - Ich vermute, aber bin mir nicht sicher, dass das, was Sie fragen, ist, was die erste Zeile der Ausführung für eine ASP.NET MVC-Anwendung ist, wenn es startet. Wenn ich richtig bin, sollte eine der Antworten, die Application_Start() in global.asax verweist, als akzeptiert markiert werden. Wenn dies nicht der Fall ist und Sie wissen möchten, welcher Code ausgeführt wird, wenn ein Client einen Anruf an die Anwendung sendet und die Anwendung die Anfrage bearbeitet, ist die Antwort, die Sie als akzeptiert markiert haben, sinnvoll. – Matt

+0

Statement "Verweise Application_Start() in global.asax sollte als akzeptiert markiert werden.", Kann etwas verwirrend sein, wenn Sie Microsoft Link http://msdn.microsoft.com/en-us/library/2027ewzw(v=vs. 100) .aspx, die mit "Die Global.asax-Datei, die auch als die ASP.NET-Anwendungsdatei bezeichnet wird, ist eine OPTIONAL-Datei, die ... enthält". Nun stellt sich die Frage, wie eine optionale Datei akzeptiert wird, wenn der Start einer Anwendung nicht erfolgt. Ich hoffe du hast es verstanden. Der Startpunkt kann nicht als Startpunkt optional sein. – AKS

Antwort

1

Es ist HTTP. Sie stellen eine Anfrage an den Webserver für eine Ressource, wie Sie oben angegeben haben, und der Controller antwortet.

Also in ASP.NET MVC haben Sie mehrere Einstiegspunkte: jede Aktionsmethode.

MSDN Controllers and Action Methods in ASP.NET MVC

0

Im Fall, dass Sie gegeben haben, wenn Sie das erste Bit nicht-Framework-Code finden möchten, die ausgeführt wird, können Sie für HomeController.cs in der Controllers aussehen würde Verzeichnis und suchen Sie nach der Index oder Default Methode, die einen Parameter von iv-user akzeptiert.

Um den gesamten Lebenszyklus der Seite zu sehen, klicken Sie hier: http://www.red-gate.com/products/dotnet-development/ants-performance-profiler/entrypage/be-ahead-of-the-game-poster2. Dies führt Sie von der eingehenden HTTP-Anforderung zur endgültigen gerenderten Ansicht.

23

Die Global.asax.cx Datei, wo es die Startmethode Application_Start gibt, könnte das sein, was Sie suchen. Das ist der Code, der beim Start der App ausgeführt wird.

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

Aber bei der URL suchen Sie die HomeController oder DirectoryController-Datei geschrieben haben könnte. Leider kann ich nicht aus dem Blick auf Ihre Route sagen.

Eine Probe Route Registercode ist als unten, wo man sieht, dass

  1. Die URL/{Controller}/{Aktion}/{id}

  2. Der Standard für Controller/action/ID ist Home/Index/optional

Also, wenn Sie Ihre Web mit der Start-uRL als http://localhost:52763/ laufen, ist es in der Tat nennen wird, wird 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

Es gibt eine application_start() Methode in global.asax.cs. Wie für den Controller die Anfrage betrifft, beginnt seine im Konstruktor des Controllers dann die Methode für die angeforderte Aktion.

0

MR P.Campbell richtig war. Bitte Für weitere Einzelheiten Bewertung als: http://msdn.microsoft.com/en-us/library/dd381612(v=vs.98).aspx

ich, es ist Hauptinhalt kopiert:

Legendes MVC Anwendungsausführung

Anfragen zu einer ASP.NET-MVC-basierten Web-Anwendung zum ersten Mal durch das UrlRoutingModule Objekt übergeben, die ist ein HTTP-Modul. Dieses Modul analysiert die Anfrage und führt eine Routenauswahl durch. Das UrlRoutingModule-Objekt wählt das erste Routenobjekt aus, das der aktuellen Anforderung entspricht.(Ein Routenobjekt ist eine Klasse, die RouteBase implementiert und in der Regel eine Instanz der Route-Klasse ist.) Wenn keine Routen übereinstimmen, führt das UrlRoutingModule-Objekt nichts aus und lässt die Anfrage auf die normale ASP.NET- oder IIS-Anforderungsverarbeitung zurückfallen. Vom ausgewählten Route-Objekt erhält das UrlRoutingModule-Objekt ein Objekt, das die IRouteHandler-Schnittstelle implementiert und mit dem Route-Objekt verknüpft ist. In einer MVC-Anwendung ist dies normalerweise eine Instanz der MvcRouteHandler-Klasse. Die MvcRouteHandler-Instanz erstellt ein MvcHandler-Objekt, das die IHttpHandler-Schnittstelle implementiert. Das MvcHandler-Objekt wählt dann den Controller aus, der die Anforderung letztendlich verarbeiten wird. Weitere Informationen finden Sie unter ASP.NET-Routing.

Verwandte Themen