第5讲:MVCRoute和urls.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5讲:MVCRoute和urls 2010.9.5 苏鹏 内容介绍 -Url和Routes介绍 -Routes匹配URL的工作方式 -使用Routes ? 预备知识 -安装Visual Studio 2010 Express -了解ASP.Net -了解设计模式基本概念 ? 关于Urls -ducts.list.aspx?id=123catid=33723page=3(糟糕的Url) ? URL的六个要求: 1.域名好记好拼写 2.URL尽量短(使用位置代替参数的变量名) 3.URL好输入(最好不要输入特殊字符,如) 4.URL可以体现网站的结构(逻辑结构) 5.URL规律性强,用户可以自行猜测构造(尽量让机器爬虫能猜到,这样网站访问量才大) 6.URL固定,并持久不变 ? URL,U代表Uniform统一的,R代表Resource资源,L代表定位Locator,总体来说就是表示统一资源定位。在ASP.Net MVC中,URL绝不只是意味着映射到一个文件,通常意味着映射到一个类或一个方法。 ? ASP.Net MVC Routing介绍 -接受用户输入并指向Controller的Action -把Controller的Action输出成URLs ? Routing与URLRewriting技术的比较 这两种技术都用来实现把路径与物理文件分离,并且都用于形成逻辑清晰,便于SEO理解的优美的URL。 这两种技术最主要的区别是,Rewriting技术最终还是要把页面转发。URL虽然是重写了,但是它最终还是要写回当年的样子。也就是: 一开始可能看见的是 - /product/bolts.aspx 但最后实际上请求的路径还是 - /product/display.aspx?productid=123 但Routing不会,Routing从根本上解决了这个问题。它不会重写URL。 另外一点是Rewriting是单向的。给一个bolts.aspx,它能够拆开分析,但如果要它从后台代码生成一个新的URL,是没有这个能力的。因为Rewriting只管响应Request,匹配URL,把它转义。它没有从后台机制上,把一个Controller和Action拼凑成URL放到前台表示层的能力。而Routing技术还能生成URL,通过Controller和Action的名字生成URL,这是Rewriting做不到的。所以Routing有点像Rewriting的双向2.0版本。 ? 定义Routes -Route URLs ? 每个ASP.Net MVC都至少有一个默认的Routes来实现应用程序。当它们遇到请求的时候,它就知道去找哪个Controller和Action,如果应用程序结构比较复杂, 我们需要在Routes里实现多条路由信息。Routes存放在RoutesCollection对象的RoutesTable.Routes的集合中,所以Routes是一开始写好的一种解析的方式,这种解析方式被注册到全局变量里。 ? Route URLs - routes.MapRoute(simple,{first}/{second}/{third}); 当用户请求发过来的时候,Routing对象就把请求放到一个RouteValueDictionary的字典类里,URL中的参数都在字典中保存起来。在上面的URL中,会在字典里创建三个键值对,键分别是first、second、third,值会等到具体接收的时候传入储存。这里值value并不是简单的string字符串,而是object。 注:第三种URL不合法 ? - routes.MapRoute(simple,{controller}/{action}/{id}); ? URL的匹配规则 - site/{controller}/{action}/{id}(静态字符串) 匹配的时候一定要给一个明确的划分符号。 ? 默认路由 -添加默认匹配路由参数 ? ? ? 路由参数默认值需从最后一个参数开始往前写,顺序可以交换,但中间参数不能有遗漏,不然系统不知道该如何匹配路由,下面就是错误的路由 ? 关于URL的约束 - /2010/08/23/ - /products/list/food ? 正则表达式约束 ? 路由匹配的顺序是按照添加顺序来匹配的,当遇到路由格式一样时,先注册的路由先匹配。 ? 命名一个Routes 当我们希望调用某个指定的路由解析时,就需要用到路由的命名。 ? Area -指定作用域 ? ASP.Net网站大了以后它的分层架构和分文件夹管理是个大问题。我们允许把Models、Controllers、Views都是用区域来划分,所以一个大的工程网站可以划分成许多不同功能的小区域网站,每一个网站都有自己的一套路

文档评论(0)

白领文档(原创) + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档