zoukankan      html  css  js  c++  java
  • 关于采用MVC开发默认路由导致首页部分文件访问失效的临时解决方案

    最近开发中涉及了Mvc4的开发,其中的默认路由功能是很不错的东西,但是在实际应用中就出现了不少的问题。比如我们访问某网站http://www.abc.com,虽然路由会帮助自动转向Home/Index目录,但是浏览器的地址并没有变化,这个时候问题就出现了。如果你还有相对站点的还有其它子目录的时候,或者该mvc应用是放在虚拟目录中执行的时候,就会出现页面中设置"../某子目录名/文件名"无法访问的情况。只有当你在地址栏完整的输入路径,如:http://www.abc.com/Home/Index时,页面才会正常。目前个人研究出来应该是mvc路由机制导致的问题(当然也许是我个人习惯设置目录的问题),不管原因如何,总之问题确实是出现了。网上找了很多也没有解决,有个网友也问过,无人解答。这是mvc4用的人不多么?还是什么情况。不管了,我自己研了一套临时的解决办法,其原理就是人为的把简化首页地址补全,用JS来实现的,只需要把代码加入到Home/Index页面中的顶部位置优先执行就可以了。代码如下:

     1 <script>
     2 var loc = window.location.href.toString();
     3     if (loc.indexOf("Home") <= 0) {
     4         if (loc.lastIndexOf("/") == loc.length - 1) {
     5             window.location.href = loc + "Home/Index";
     6         }
     7         else {
     8             window.location.href = loc + "/Home/Index";
     9         }
    10     }
    11 </script>

    代码谈不上简单易行,仅仅是个人为了解决问题临时弄的。因为时间有限没有去寻找更加好的解决办法。再此提供此办法的同时,也有请各位朋友在有更好的方法时,请不吝赐教,谢谢!

  • 相关阅读:
    Button 样式设置
    WPF 运行报错:在使用 ItemsSource 之前,项集合必须为空。
    c# List 按条件查找、删除
    c# WPF DataGrid设置一列自增一
    C# WPF DataGrid去掉最左侧自动生成一列
    int 转换成定长的 byte数组
    字节数组 byte[] 与 int型数字的相互转换
    [ c# ] int 类型转换为固定长度的字符串
    ListView 绑定 字典
    不能引用的文件,却需要在程序底层使用的文件 的存放位置
  • 原文地址:https://www.cnblogs.com/ooYuan/p/3799706.html
Copyright © 2011-2022 走看看