你的位置:首页 > 软件开发 > ASP.net > 简单实例一步一步帮你搞清楚MVC3中的路由以及区域

简单实例一步一步帮你搞清楚MVC3中的路由以及区域

发布时间:2015-08-31 17:00:21
我们都知道MVC 3 程序的所有请求都是先经过路由解析然后分配到特定的Controller 以及 Action 中的,为什么这些知识讲完了Controller Action Model 后再讲呢?这个东西我个人感觉比较的抽象吧!如如您有基础,看起来 ...

     我们都知道MVC 3 程序的所有请求都是先经过路由解析然后分配到特定的Controller 以及 Action 中的,为什么这些知识讲完了Controller Action Model 后再讲呢?这个东西我个人感觉比较的抽象吧!如如您有基础,看起来一点也不费力,如果您没有基础的话,您连Controller  Action 都不知道是什么,那您怎么理解路由呢?嘿嘿仅仅是个人的看法!如果您还没有了解MVC 3 的一些基本的信息请您按照我下面的导航来,先了解MVC 3 的其他知识,然后再看下这篇文章。前面文章但凡涉及路由知识的东东都有对路由的简单的解释,对于不还不了解路由概念的人来说阅读下面这几篇文章没什么障碍。    1. get='_blank'>ASP.NET MVC 3 初探好下面咱就好好的说说路由Routing第二 Routing的作用:第三 Routing 是怎么工作的:1 Routes.MapRoute(我们会发现上面这几行代码。这几行代码就定义了一个路由匹配规则,下面我们将一下具体的参数是什么意思。  - url 参数: 将要识别的参数括起来即可, 比如: {controller}/{action}/{id} 这里的{}就是占位符 您可以这样理解大家都用过string类的Format方法吧!  - defaults 参数:url参数的默认值,当我们新建了一个mvc 项目的时候当运行浏览可以看到地址栏没有任何的参数只有一个比如http://localhost:32112/ 它什么就转向了home下的index页面呢?这就是这个参数的作用了,它可以定义默认的controller action 以及 id参数 这个还得说一下您看上面的代码为什么id不给一个具体的值而是给一个UrlParameter.Optional 呢 这个呢 因为您不能保证id的类型是 int 的还是 stirng 等等 ,写id= UrlParameter.Optional 它会根据id的类型还具体的指定什么类型的默认值比如 int型的就是0吧!  - constraints参数: 这个参数在再上面的代码中没有出现 我先提前说下 然后一会儿咱再看代码吧!new { controller = @"\d{4}"}通过第IRouteConstraint 接口目前可以限制请求的类型。httpMethod = new HttpMethodConstraint( "GET", "POST" )第四 怎么优化url第五 路由匹配是有优先级的第六 区域 area  比如 一个管理系统 都有后台功能吧!但是我们想让后台管理这块和网站前台分开或这说后台管理这快存再一个单独的web.config 配置文件怎么办呢?这里区域的概念出来了我们首先新建一个区域。完事后会看到一个AreaAdminAreaRegistration.cs 文件 打开它1 public override void RegisterArea(AreaRegistrationContext context)复制代码重写了一个方法 那 全局文件中怎么识别呢 ? 看下全局文件1  protected void Application_Start()第3行是不是定义了  所以 区域这个路由规则除了前面加了一个AreaAdmin 区域名 和其他的没有任何的区别了吧!下面我们新建一个Controller 比如AdminHome 我们先避免和以前的Controller重名一会儿再说为什么。看下运行结果很正常吧!但是如果我要新建一个HomeController 呢 就是 建一个 以前前台有过的Controller  ,运行一下也没问题是吧!好下面咱再访问一下另一个homecontroller 就是 前台的那个,看下出什么异常  出问题了是吧!因为程序中存在两个HomeController 它不知道要访问哪个!,所以根据错误提示我们还得再原有的路由中加点东西 加个namespace。区分一下两个HomeControllerok 搞定。第七 路由测试RegisterRoutes(RouteTable.Routes);一切搞定 运行一下吧!


 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:简单实例一步一步帮你搞清楚MVC3中的路由以及区域

关键词:mvc

mvc
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。