在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 带扩展名的路由无法访问的更多相关文章

  1. MVC小系列(二十一)【带扩展名的路由可能失效】

    mvc3之后:如果路由带上扩展名,比如这样: public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRout ...

  2. 爱上MVC系列~带扩展名的路由失效问题

    回到目录 对MVC中,对URL进行重写变得非常方便,你只要设置相应的路由规则即可完成,但进行MVC3后,发现设置了以下路由,系统具体不认 routes.MapRoute( name: "De ...

  3. Delphi获取文件名、文件名不带扩展名、文件名的方法;delphi 获取文件所在路径

    取文件名 ExtractFileName(FileName); 取文件扩展名: ExtractFileExt(filename); 取文件名,不带扩展名: 方法一:   Function Extrac ...

  4. PHP中获取当前页面的完整URL、PHP URL处理、获取不带扩展名的文件名

    javascript实现: top.location.href 顶级窗口的地址this.location.href 当前窗口的地址 PHP实现 #测试网址: http://localhost/blog ...

  5. Delphi获取文件名、不带扩展名文件名、文件所在路径、上级文件夹路径的方法

    1.获取不带扩展名的文件名方法,利用ChangeFileExt函数修改传入参数的扩展为空,并不会对文件本身产生变更. ChangeFileExt(ExtractFileName('D:\KK\Test ...

  6. delphi下如何获得不带扩展名的文件名?

    Edit1.Text:=ChangeFileExt(ExtractFileName(Application.ExeName),'') ; //获取到应用程序名后,将后缀名清空就可以啦.

  7. 在iis6里使用没有扩展名的mvc

    这2天mvc第二个预览终于出来了.赶紧拿过来测试.在装了3.5的虚拟主机上运行正常.应该已经可以到能正常使用的阶段了.不过我前面一篇翻译的文章中说到,如果使用的是iis6的话就只能忍气吞声的使用带扩展 ...

  8. Struts2 Action扩展名的三种修改方法

    最近在做项目开发过程中犯了一个很低级的错误,在这里列举出来,供大家参考借鉴:我希望通过Url请求一个Action,最终通过服务器的处理能得到一个Json串,所以我在Url中体现这一特点,将action ...

  9. C# 获取文件名及扩展名【转】

    https://www.cnblogs.com/libushuang/p/5794976.html C# 获取文件名及扩展名 string aFirstName = aFile.Substring(a ...

随机推荐

  1. luogu3305/bzoj3130 费用流 (二分答案+dinic)

    Bob肯定想挑一个流量最大的边,然后把所有的费用都加给它呗 那Alice就让流量最大的边尽量小呗 那就二分一下答案再dinic呗 #include<bits/stdc++.h> #defi ...

  2. [HAOI2015]按位或(min-max容斥,FWT,FMT)

    题目链接:洛谷 题目大意:给定正整数 $n$.一开始有一个数字 $0$,然后每一秒,都有 $p_i$ 的概率获得 $i$ 这个数 $(0\le i< 2^n)$.一秒恰好会获得一个数.每获得一个 ...

  3. 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 ...

  4. linux之sleep

    linux中的sleep为库调用(library calls),其声明文件为unistd.h. unsigned int sleep(unsigned int seconds); 如果进程或者线程调用 ...

  5. linux反向删除文件

    Linux反选删除文件 最简单的方法是 # shopt -s extglob      (打开extglob模式) # rm -fr !(file1)  如果是多个要排除的,可以这样: # rm -r ...

  6. GUI程序开发的流程(随时删除的源码)

    1.继承JFrame 2.定义需要的组件 3.创建组件 4.设置布局管理器 5.添加组件 6.显示窗体 --------------------------------------------- 小代 ...

  7. python爬虫 beutifulsoup4_1官网介绍

    http://www.crummy.com/software/BeautifulSoup/bs4/doc/ Beautiful Soup Documentation Beautiful Soup is ...

  8. 关于连接linux被拒

    一.scp被拒 在服务器A命令行使用scp往服务器B传输,如: scp -i id_rsa_125 file1 user01@IP:/home #ssh_exchange_identification ...

  9. 配置DHCP服务

    配置DHCP服务 一.DHCP的简介 1.DHCP是Dynamic Host Configuration Protocol(动态主机配置协议)的缩写: 2.DHCP是从BOOTP(Bootstrap ...

  10. shell提取文件后缀名,并判断其是否为特定字符串

    如果文件是 .css文件 或 .js文件,则进行处理. file=$1 if [ "${file##*.}"x = "css"x ]||[ "${fi ...