我的asp.net内容管理系统如何迁移到asp.net mvc(四)自定义URL路径
来源:互联网 发布:华为手机淘宝网 编辑:程序博客网 时间:2024/05/16 18:10
在网站的系统中,自定义url是非常重要的一部分,不仅对于seo有帮助,还能体现出架构设计的专业程度,比如:/article/2016/09/01这样的地址就比article.aspx?year=2016&month=09&date=01不仅要容易被搜索引擎收纳,而且也要友好得多。在实现自定义url的过程中,需要考虑三部分部分:1.截获404错误;2.页面转向;3.伪url及真url参数的设计
在asp.net MVC中,可以通过在global.asax中设置application_error来获取error (asp.net1.1时采用在iis设置curstom error page来实现),并针对404进行处理然后跳转 Server.TransferRequest (asp.net1.1时采用的是server.transfer);
而至于第三点关于伪url及真url参数的设计,结合Route路由机制,理想的伪url需求是:
1.不定数量的参数:目前Route路由中只有{*value}的方式勉强可以用,见 https://msdn.microsoft.com/zh-cn/library/cc668201(v=vs.90).aspx 处理可变数量段,图1;
2.随时设置伪url,无需修改项目代码:按照Route路由规则,需要在RouteConfig.cs中配置好并进行编译,或参考:动态配置ASP.NET MVC的Route规则
3.参数的有效性,多余的参数不被允许,不足的参数被忽略,比如:/controller/action/p1,/controller/action/p1/p2,目前的Route路由可以满足,图2;
4.参数的约束性,比如p1只能取值为a或者b,这样需要使用自定义路由的约束条件了,参考:自定义路由及约束 ,图3;
以上除了2外,Route机制是一个比较理想的方式;为了在应用阶段而不是代码阶段配置伪url,需要考虑采用数据库+缓存的方式来解决了。
参考MVC整体运行机制:http://www.360doc.com/content/13/0824/15/13029093_309571015.shtml
http://www.360doc.com/content/14/0317/21/16319058_361410393.shtml
http://stackoverflow.com/questions/16026441/dynamic-routes-from-database-for-asp-net-mvc-cms
- 我的asp.net内容管理系统如何迁移到asp.net mvc(四)自定义URL路径
- 我的asp.net内容管理系统如何迁移到asp.net mvc(一)开场
- 我的asp.net内容管理系统如何迁移到asp.net mvc(二)创建项目
- 我的asp.net内容管理系统如何迁移到asp.net mvc(三)初次部署到IIS
- ASP.NET 内容管理系统 CMS 的体系结构
- ASP.NET MVC Framework体验:路径选择(URL Routing)
- ASP.NET MVC框架(第二部分): URL路径选择
- 学习ASP.NET MVC5框架揭秘笔记-ASP.NET MVC是如何运行的(四)
- Orchard 基于 ASP.NET MVC 技术的免费开源内容管理系统
- PlugNT CMS(自己开发的Asp.net内容管理系统)
- PHP的迁移到ASP.NET
- ASP.NET MVC 的URL路由介绍
- 几个中文.NET/ASP CMS(内容管理系统)
- 如何做一个基于ASP.NET MVC 网站(四)
- ASP.NET MVC URL Routing
- asp.net mvc css url
- ASP.NET MVC框架 (第二部分): URL路径选择
- ASP.NET MVC框架 (第二部分): URL路径选择
- 盒子模型
- XSS防范之Encode
- BFS广度优先搜索(12)--hdu3085(双向BFS)(进阶题)
- 我认为不错的图书推荐
- Openjudge 3531 判断整除
- 我的asp.net内容管理系统如何迁移到asp.net mvc(四)自定义URL路径
- java--两种servlet(servlet实现类)
- codeblocks的openGL环境配置
- 将ResultSet转为List
- 数据结构000
- C家家
- Unicode 和 UTF-8 有何区别?
- redhat6.5 和 Centos6.5 打开终端的快捷键
- thinkphp缓存