1。asp.net mvc URL routing
- IIS determines the request should be handled by ASP.NET
- The MvcHandler uses IControllerFactory to obtain an instance of IController using the "controller" route data from the route {controller}/{action}/{id}.
public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults ); } protected void Application_Start() { AreaRegistration.RegisterAllAreas(); RegisterRoutes(RouteTable.Routes); }
- The HomeController is found, and its Execute method is invoked
- The HomeController invokes the Index action
- The Index action adds some objects to the ViewData dictionary
public ActionResult Index() { ViewData["Message"] = "Welcome to ASP.NET MVC!"; return View(); }
- ASP.NET renders the response to the browser.
<h2><%= Html.Encode(ViewData["Message"]) %></h2>
2.Controller两种形式
public ActionResult Index() { ViewData.Add("text", "Hello World2"); return View(); }
<h2><%=ViewData["text"]%></h2>
public ActionResult Index() { return View((object)"Hello World3"); }
<h2><%=Model %> I'm strongly typed in a layout.</h2>