2013-04-01 82 views
0

在我的ASP MVC3网站的其中一个页面上,我需要包含指向我们在办公室中使用的共享驱动器上的文件或文件的链接。我将文件的地址保存在数据库中,并试图在我们的视图中将其呈现为链接。ASP MVC3 - 链接到共享文件夹上的文件

使用的@Html.ActionLink,我敢肯定是错误的控制使用,我得到以下错误:

[HttpException (0x80004005): A potentially dangerous Request.Path value was detected from the client (&).] 
    System.Web.HttpRequest.ValidateInputIfRequiredByConfig() +9021001 
    System.Web.PipelineStepManager.ValidateHelper(HttpContext context) +59 

不过,使用和其他@Html链路控制效果不好。

其中一个问题是我们不希望通过允许下载来创建文件的多个副本。我们只是想链接到该文件,在指定的位置,并允许用户在该副本上工作。 Windows有一个功能,允许您点击一个文件路径,如果通过电子邮件或Word文档发送的,它将打开文件。这是我们要做的功能类型。

这是当前导致问题的样本地址:当这个被渲染成HTML,它看起来像这样

\\Prdhilfs02\l&i-systems\WORKAREA\AgencySystems\SHARED\DSSProj\PRDSUP\Defects\TD14734 Agent Welcome Letters\Welcome Letters v1.2.doc 

/%5C%5CPrdhilfs02%5Cl%26i-systems%5CWORKAREA%5CAgencySystems%5CSHARED%5CDSSProj%5CPRDSUP%5CDefects%5CTD14734%20Agent%20Welcome%20Letters%5CWelcome%20Letters%20v1.2.doc 
+0

为什么不手动创建它?例如。 File

回答

0

大概没有的情况下,使用一个辅助,为什么不只是

<a href="@Html.Raw(filepath)">Download</a> 
+0

好吧,这似乎在视图中正确显示路径,但是当我单击链接时,什么也没有发生...... – NealR

0

ActionLink是为控制器行动的链接,而不是abso琵琶链接。

你并不需要一个HTML辅助可言,只是直接呈现这样的:

<a href="file://<%= myUncPath %>">click me</a> 
+0

与此答案相同的结果:路径呈现正确,但是当您单击链接时没有任何反应。 – NealR

+0

你如何生成URI字符串?它看起来像你不必要地调用UrlEncode两次。 – Dai