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 ...
随机推荐
- luogu3305/bzoj3130 费用流 (二分答案+dinic)
Bob肯定想挑一个流量最大的边,然后把所有的费用都加给它呗 那Alice就让流量最大的边尽量小呗 那就二分一下答案再dinic呗 #include<bits/stdc++.h> #defi ...
- [HAOI2015]按位或(min-max容斥,FWT,FMT)
题目链接:洛谷 题目大意:给定正整数 $n$.一开始有一个数字 $0$,然后每一秒,都有 $p_i$ 的概率获得 $i$ 这个数 $(0\le i< 2^n)$.一秒恰好会获得一个数.每获得一个 ...
- Educational Codeforces Round 42 (Rated for Div. 2) D. Merge Equals
http://codeforces.com/contest/962/problem/D D. Merge Equals time limit per test 2 seconds memory lim ...
- linux之sleep
linux中的sleep为库调用(library calls),其声明文件为unistd.h. unsigned int sleep(unsigned int seconds); 如果进程或者线程调用 ...
- linux反向删除文件
Linux反选删除文件 最简单的方法是 # shopt -s extglob (打开extglob模式) # rm -fr !(file1) 如果是多个要排除的,可以这样: # rm -r ...
- GUI程序开发的流程(随时删除的源码)
1.继承JFrame 2.定义需要的组件 3.创建组件 4.设置布局管理器 5.添加组件 6.显示窗体 --------------------------------------------- 小代 ...
- python爬虫 beutifulsoup4_1官网介绍
http://www.crummy.com/software/BeautifulSoup/bs4/doc/ Beautiful Soup Documentation Beautiful Soup is ...
- 关于连接linux被拒
一.scp被拒 在服务器A命令行使用scp往服务器B传输,如: scp -i id_rsa_125 file1 user01@IP:/home #ssh_exchange_identification ...
- 配置DHCP服务
配置DHCP服务 一.DHCP的简介 1.DHCP是Dynamic Host Configuration Protocol(动态主机配置协议)的缩写: 2.DHCP是从BOOTP(Bootstrap ...
- shell提取文件后缀名,并判断其是否为特定字符串
如果文件是 .css文件 或 .js文件,则进行处理. file=$1 if [ "${file##*.}"x = "css"x ]||[ "${fi ...