第十六章 提升用户体验 之 设计实现routes
2016-02-24 18:07
537 查看
[b]1. 概述[/b]
ASP.NET MVC route 用来把URL映射到方法中的action,是用户和程序之间的桥梁。
本章内容包括:定义route处理URL Pattern、应用route限制、忽略URL Pattern、添加route参数、定义areas分组。
[b]2. 主要内容[/b]
2.1 定义route处理URL Pattern
route解析的灵活性使得URL可以更加的易于理解,又增加了搜索引擎友好性。
routes保存在一个独立的 RouteCollection对象中。 App_Start/RouteConfig.cs文件中的RegisterRoutes方法用来添加route。
2.2 应用route限制
route限制是一个附加的过滤器,有助于更精确快速的找到请求的资源。
2.3 忽略URL Pattern
用于忽略的Route,是一种灵活的附加功能,可以提高站点的可预见性和安全性。
2.4 添加route参数
route参数可以为映射提供更多的灵活性。
2.5 定义areas
area用来把一组controllers, views, 和 models 按照一定的功能性组织到一起,多用于大项目中。
areas间的交互:
[b]3. 总结[/b]
① route使得站点url更加简单易读,有利于SEO.
② route的添加顺序很重要。先添加ignore route。
③ 创建route时,可以在任何可能为空的地方添加默认值。
④ Constraints是一种过滤请求Url的方式,可以根据不同route中的变量类型和内容来过滤。
⑤ 大型项目中,action的数量可能会巨大。使用areas可以划分逻辑性分组。每一组包含独立的route管理。
ASP.NET MVC route 用来把URL映射到方法中的action,是用户和程序之间的桥梁。
本章内容包括:定义route处理URL Pattern、应用route限制、忽略URL Pattern、添加route参数、定义areas分组。
[b]2. 主要内容[/b]
2.1 定义route处理URL Pattern
route解析的灵活性使得URL可以更加的易于理解,又增加了搜索引擎友好性。
routes保存在一个独立的 RouteCollection对象中。 App_Start/RouteConfig.cs文件中的RegisterRoutes方法用来添加route。
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 }, constraints: new { id = @"\d+" } ); }
2.2 应用route限制
route限制是一个附加的过滤器,有助于更精确快速的找到请求的资源。
routes.MapRoute( name: "Videos", url: "Product/Details/{id}", defaults: new { controller = "DVD", action = "Index", Page = UrlParameter.Optional }, constraints: new { id = @"[a-zA-Z]+"}); routes.MapRoute( name: "Videos2", url: "Product/Details/{id}", defaults: new { controller = "DVD", action = "Details", Page = UrlParameter.Optional }, constraints: new { id = @"\d+" });
2.3 忽略URL Pattern
用于忽略的Route,是一种灵活的附加功能,可以提高站点的可预见性和安全性。
routes.Ignore("{*allhtml}", new {allhtml=@".*\.htm(/.*)?});
2.4 添加route参数
route参数可以为映射提供更多的灵活性。
routes.MapRoute( name: "GeneralListDateRange", url: "{controller} /List/{param1}/{ param2}/{ param3}", defaults: new { controller = "Article", param1= UrlParameter.Optional, param2= UrlParameter.Optional, param3= UrlParameter.Optional }, );
2.5 定义areas
area用来把一组controllers, views, 和 models 按照一定的功能性组织到一起,多用于大项目中。
areas间的交互:
@Html.ActionLink("Product Detail", "Product", "Detail", new { area="ShoppingSite"}, null)
[b]3. 总结[/b]
① route使得站点url更加简单易读,有利于SEO.
② route的添加顺序很重要。先添加ignore route。
③ 创建route时,可以在任何可能为空的地方添加默认值。
④ Constraints是一种过滤请求Url的方式,可以根据不同route中的变量类型和内容来过滤。
⑤ 大型项目中,action的数量可能会巨大。使用areas可以划分逻辑性分组。每一组包含独立的route管理。
相关文章推荐
- imooc网的主体框架
- imooc网的主体框架
- imooc网的主体框架
- MySql中having字句对组记录进行筛选使用说明
- Runtime.addShutdownHook的用法
- Navicat For Mysql快捷键
- PHP 魔术方法__set() __get() 方法
- Runtime.addShutdownHook的用法
- 安装CentOS 7时出现No Caching mode page found问题的解决
- ASP.NET Web Service 标准SOAP开发案例代码(自定义验证安全头SOAPHeader)
- 打印php信息的方法
- Linux 有问必答:如何知道进程运行在哪个 CPU 内核上?
- leetcode笔记--Simplify Path
- android开发环境搭建(Eclipse版)
- 嵌入式学习为什么要选择4412开发板
- RESTful API 设计指南
- 信鸽Unsupported major.minor version 52.0错误
- STM32低功耗配置
- The Swift Programming Language学习笔记(十七)——自动引用计数
- phpmailer 中文使用说明(简易版)