标签:
在MVC之前,ASP.NET假设请求的URL与服务器上的文件之间有关联,服务器接受请求,并输出相应的文件。而在引入MVC后,请求是由控制器的动作方法来处理的。为了处理URL,便引入了路由系统。
首先我们来创建一个基础项目用来演示。代码如下:
1 public class HomeController : Controller 2 { 3 public ActionResult Index() 4 { 5 ViewBag.Controller = "Home"; 6 ViewBag.Action = "Index"; 7 return View("ActionName"); 8 }
}
1 public class AdminController : Controller 2 { 3 public ActionResult Index() 4 { 5 ViewBag.Controller = "Admin"; 6 ViewBag.Action = "Index"; 7 return View("ActionName"); 8 } 9 }
有两个controller,它们都返回视图“ActionName”,我们创建一个Shared文件夹并在其中新建一个”ActionName“视图,代码如下:
@{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>ActionName</title> </head> <body> <div>The controller is: @ViewBag.Controller</div> <div>The action is: @ViewBag.Action</div> </body> </html>
路由是在Routefig.cs文件中定义的,我们打开文件,会看到有一条默认的路由如下:
routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } );
我们可以删掉这条路由,手工来创建。例如这样:
routes.MapRoute("MyRoute", "{controller}/{action}");
我们将URL写为localhost:端口/Admin/Index,我们可以看到浏览器成功转到了Admin控制器的Index动作方法。
标签:
原文地址:http://www.cnblogs.com/skyshalo/p/5799615.html