所以我正在使用ASP.NET MVC开发Intranet Web应用程序,我需要创建一个指向网络上文件夹的链接.所以,举一个例子,假设我想创建一个指向"C:\"的链接,这个uri存储在.我认为最简单的方法是创建一个常规链接,如下所示:site.DocsPath
<a href="file:///<%= site.DocsPath %>">Documents</a>
Run Code Online (Sandbox Code Playgroud)
这解决了:
<a href="file:///C:\ruby">Documents</a>
Run Code Online (Sandbox Code Playgroud)
但是,当您单击链接时,没有任何反应.这基本上就像点击普通文字一样; 绝对没有任何反应.没有重定向,没有.我在Firefox和IE中都试过这个,这两种情况都发生了同样的行为.
最初我认为它可能是斜线.所以我粘贴file:///C:\ruby到地址栏,看看它是否正确.有效.我在Firefox和IE中都尝试了这个,它在两者中都有用.
所以现在,我在想"嘿,也许我的HTML由于某种原因不合适".所以我创建了一个小的html页面,如下:
<html>
<head><title>Test Page</title></head>
<body>
<a href="file:///C:\ruby">Documents</a>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
并且看哪.....它工作了.我点击链接,它实际上是在链接之后.这适用于Firefox和IE.
所以现在我很困惑.在两种情况下(通过ASP.NET MVC和静态HTML),HTML都完全相同.然而它只适用于静态HTML案例.
现在,我只是拉着稻草.我试着粘贴
<a href="file:///C:\ruby">Documents</a>
Run Code Online (Sandbox Code Playgroud)
直接进入ASP.NET MVC中的ViewPage .不,不行.
然后我尝试将一个随机网站静态粘贴到ViewPage中,如:
<a href="http://www.google.com">Supreme Overlord of the Internet</a>
Run Code Online (Sandbox Code Playgroud)
这很有效.所以,现在我已经确认ASP.NET实际上可以遵循手工生成的链接.
现在,没有什么可做的,我做了一些疯狂的事情.我将链接设置为不存在的位置,例如:
<a href="file:///X:\this\doesnt\exist">I Hate ASP.NET MVC right now</a>
Run Code Online (Sandbox Code Playgroud)
Firefox坚持使用它并不遵循它.然而,IE实际上遵循它并给我一个错误页面.如果site.DocsPath …