第十六章 提升用户体验 之 设计实现routes
1. 概述
ASP.NET MVC route 用来把URL映射到方法中的action,是用户和程序之间的桥梁。
本章内容包括:定义route处理URL Pattern、应用route限制、忽略URL Pattern、添加route参数、定义areas分组。
2. 主要内容
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)
3. 总结
① route使得站点url更加简单易读,有利于SEO.
② route的添加顺序很重要。先添加ignore route。
③ 创建route时,可以在任何可能为空的地方添加默认值。
④ Constraints是一种过滤请求Url的方式,可以根据不同route中的变量类型和内容来过滤。
⑤ 大型项目中,action的数量可能会巨大。使用areas可以划分逻辑性分组。每一组包含独立的route管理。
第十六章 提升用户体验 之 设计实现routes的更多相关文章
- 第十五章 提升用户体验 之 设计实现MVC controllers 和 actions
1. 概述 controllers 和 actions 是 ASP.NET MVC4中非常重要的组成部分. controller管理用户和程序间的交互,使用action作为完成任务的方式. 如果是包含 ...
- Oracle11g温习-第十六章:用户管理
2013年4月27日 星期六 10:50 1.概念 (1)schema : user.object 就是用户创建的对象 (2)用户认证方式: ...
- 第十七章 提升用户体验 之 使用MVC扩展功能控制程序行为
1. 概述 ASP.NET MVC具有很好的扩展性,每一个核心功能都可以被扩展.重写 和 定制. 本章内容包括:实现MVC过滤器和controller工厂.使用 action results,view ...
- 高性能MySQL之【第十六章MySQL用户工具】学习记录
接口工具: Msql Workbench http://www.mysql.com/products/workbench SQLyog http://www.webyog.c ...
- 【linux高级程序设计】(第十六章)网络服务器应用设计
xinetd服务介绍 xinetd是Linux下的一个网络守候进程,用来统一管理网络负载不大的一组小型网路服务. 一些小型的网络服务,比如时间,telnet服务,不以守候进程出现,而是让xinetd服 ...
- Gradle 1.12用户指南翻译——第二十六章. War 插件
其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://g ...
- Gradle 1.12用户指南翻译——第三十六章. Sonar Runner 插件
本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...
- 读《构建之法》一、二、十六章随笔a
第一章 概论 “软件团队要从需求分析开始,把合适的需求梳理出来,然后逐步开展后续工作”:——p3 问题:好的用户体验要从软件分析开始,那么软件分析仅仅是从用户的需求出发吗? 我的看法:需求分析是 ...
- Atitit.hybrid混合型应用 浏览器插件,控件的实现方式 浏览器运行本地程序的解决方案大的总结---提升用户体验and开发效率..
Atitit.hybrid混合型应用 浏览器插件,控件的实现方式 浏览器运行本地程序的解决方案大的总结---提升用户体验and开发效率.. 1. hybrid App 1 1.1. Hybrid Ap ...
随机推荐
- poj1456 Supermarket[另类的并查集做法]
1.Supermarket(题目地址) 跟很久以前模拟的打地鼠那题一样,贪心+优先队列.这次换用并查集做法. 还是基于贪心,但这次换一种策略,先选价值最大的, 同时使其尽可能晚的被选上(因为早选会将之 ...
- windows下vs2012用gsoap开发webservice实例
零:说明 1.本文是根据网上前人经验结合自己动手操作写成,开发工具用的vs2012,gsoap用的是gsoap-2.8: 2.gsoap提供的工具简单介绍 1)wsdl2h.exe:根据WSDL文件生 ...
- C#自定义控件 类似于Linechart
界面效果: 对外提供的属性设置 /// <summary> /// 背景色 /// </summary> public Color BackColor; /// <sum ...
- Hibernate"discriminator-value"用法
转自:https://blog.csdn.net/iteye_3357/article/details/81862615 1 可能经常遇到这样的情况: 2 3 在数据库表中会有这样的一个字段用来区别记 ...
- 在windows10环境下给PHPStorm配置xdebug断点调试功能
笔者的开发环境: wampserver2.5系统环境包 操作系统:windows10 64位专业版. php版本:php5.512 Apache版本:2.49 好了下面介绍,phpstorm配置xde ...
- HDU - 6082 度度熊与邪恶大魔王(背包变式)
度度熊与邪恶大魔王 度度熊为了拯救可爱的公主,于是与邪恶大魔王战斗起来. 邪恶大魔王的麾下有n个怪兽,每个怪兽有a[i]的生命值,以及b[i]的防御力. 度度熊一共拥有m种攻击方式,第i种攻击方式,需 ...
- DSOFramer控件使用注意事项
1.引用dll==>AxInterop.DSOFramer.dll ==>Interop.DSOFramer.dll ==>WindowsFormsIntegration ==> ...
- 使用CTE生成辅助表(数字或时间)等
数字辅助表: , ;WITH Digital_Rangs(Digital) AS ( SELECT @start_digital UNION ALL FROM [Digital_Rangs] WHER ...
- 数据库路由中间件MyCat - 源代码篇(14)
此文已由作者张镐薪授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 对于表的dataNode对应关系,有个特殊配置即类似dataNode="distributed(d ...
- [Swift]Xcode实际操作
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...