MVC 带扩展名的路由无法访问
在MVC中,路由是必不可少的,而且MVC对Url的重写非常方便,只需要在路由中配置相应的规则即可。假如我们需要给信息详情页配置路由,代码如下:
routes.MapRoute(
name: "Info",
url: "info/{id}.html",
defaults: new { controller = "Index", action = "Info", id = UrlParameter.Optional }
);
运行结果图:
运行后发现系统找不到我们要的页面,而且调试后发现根本就没有匹配到我们配置的路由,这是因为IIS把.css文件、.js文件、.jpg以及.html等格式的请求都交给了StaticFile进行处理,而不去匹配路由规则,导致无法访问。
解决方法:
解决这个问题很简单,只需要在Web.config中添加一个配置节点并将其值设为true即可,代码如下:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
再次运行,页面被正常访问,亲测可行。

不过近段时间发现,当路由和静态文件同时存在的时候会有冲突,访问页面时一会走静态文件,一会走路由,目前还在寻找原因和解决办法。
热点缓存:就是通过对数据的分析,得到访问热点,然后针对热点和业务逻辑进行缓存处理,例如把页面静态化(~晓菜鸟 :) )。
假如/info/1.html这个页面是目前访问最高的一个页面,结合业务分析可以对这个页面进行静态化处理,目前采用的方式是在站点下面新建一个Info文件夹,然后在里面存放1.html的静态文件,测试发现,当我们访问/info/1.html这个页面时,有时会读取静态文件,有时会走路由,非常的不稳定。如果您有什么想法或建议,请直接在评论区留言,谢谢!
MVC 带扩展名的路由无法访问的更多相关文章
- MVC小系列(二十一)【带扩展名的路由可能失效】
mvc3之后:如果路由带上扩展名,比如这样: public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRout ...
- 爱上MVC系列~带扩展名的路由失效问题
回到目录 对MVC中,对URL进行重写变得非常方便,你只要设置相应的路由规则即可完成,但进行MVC3后,发现设置了以下路由,系统具体不认 routes.MapRoute( name: "De ...
- Delphi获取文件名、文件名不带扩展名、文件名的方法;delphi 获取文件所在路径
取文件名 ExtractFileName(FileName); 取文件扩展名: ExtractFileExt(filename); 取文件名,不带扩展名: 方法一: Function Extrac ...
- PHP中获取当前页面的完整URL、PHP URL处理、获取不带扩展名的文件名
javascript实现: top.location.href 顶级窗口的地址this.location.href 当前窗口的地址 PHP实现 #测试网址: http://localhost/blog ...
- Delphi获取文件名、不带扩展名文件名、文件所在路径、上级文件夹路径的方法
1.获取不带扩展名的文件名方法,利用ChangeFileExt函数修改传入参数的扩展为空,并不会对文件本身产生变更. ChangeFileExt(ExtractFileName('D:\KK\Test ...
- delphi下如何获得不带扩展名的文件名?
Edit1.Text:=ChangeFileExt(ExtractFileName(Application.ExeName),'') ; //获取到应用程序名后,将后缀名清空就可以啦.
- 在iis6里使用没有扩展名的mvc
这2天mvc第二个预览终于出来了.赶紧拿过来测试.在装了3.5的虚拟主机上运行正常.应该已经可以到能正常使用的阶段了.不过我前面一篇翻译的文章中说到,如果使用的是iis6的话就只能忍气吞声的使用带扩展 ...
- Struts2 Action扩展名的三种修改方法
最近在做项目开发过程中犯了一个很低级的错误,在这里列举出来,供大家参考借鉴:我希望通过Url请求一个Action,最终通过服务器的处理能得到一个Json串,所以我在Url中体现这一特点,将action ...
- C# 获取文件名及扩展名【转】
https://www.cnblogs.com/libushuang/p/5794976.html C# 获取文件名及扩展名 string aFirstName = aFile.Substring(a ...
随机推荐
- 洛谷 P1450.硬币购物 解题报告
P1450.硬币购物 题目描述 硬币购物一共有\(4\)种硬币.面值分别为\(c1,c2,c3,c4\).某人去商店买东西,去了\(tot\)次.每次带\(d_i\)枚\(c_i\)硬币,买\(s_i ...
- 【洛谷P1091】合唱队列
题目大意:给定一个有 N 个正整数的序列,从其中拿走一些数,使得剩下的数满足严格单峰性,即先严格递增后严格递减,允许单调增和单调减,求最少需要拿走多少数. 题解:先考虑严格单调的情况,最少需要拿走多少 ...
- 【POJ1961】最短周期串/最大周期 kmp
引理:\(s[1,i]\) 具有长度为 \(len\) 的循环节的充要条件是:\(len\ |\ i,s[1,i-len]=s[len+1,i]\). 代码如下 #include <cstdio ...
- typescript枚举,类型推论,类型兼容性,高级类型,Symbols(学习笔记非干货)
枚举部分 Enumeration part 使用枚举我们可以定义一些有名字的数字常量. 枚举通过 enum关键字来定义. Using enumerations, we can define some ...
- poj 3683(2-SAT+SCC)
传送门:Problem 3683 https://www.cnblogs.com/violet-acmer/p/9769406.html 参考资料: [1]:挑战程序设计竞赛 题意: 有n场婚礼,每场 ...
- tcp的4次挥手、三次握手
1. TCP短连接模拟一种TCP短连接的情况:1. client 向 server 发起连接请求2. server 接到请求,双⽅建⽴连接3. client 向 server 发送消息4. serve ...
- linux下怎样查看哪些进程占用swap空间
for i in `cd /proc;ls |grep "^[0-9]"|awk ' $0 >100'` ;do awk '/Swap:/{a=a+$2}END{print ...
- CSS的显示模式
div与span div与span有什么区别 div单独占一行,span不会单独占一行 div是容器级的标签,而span是一个文本级的标签 容器级的标签有:div , h , ul , ol , dl ...
- python---redis中文操作与系统中文检测
import redis import chardet r.set("name","我是在Py3保存的中文字符串") ret = r.get("nam ...
- mysql用户权限分配专栏
00x1创建新用户 通过root用户登录之后创建 创建新用户,用户名为testuser,密码为123456 : 1 grant all privileges on *.* to testuser@lo ...