0

在我的 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 doc 发送文件,则允许您单击文件路径以打开文件。这就是我们想要的功能类型。

这是当前导致问题的示例地址:

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

当它被渲染成 HTML 时,它看起来像这样:

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

2 回答 2

0

ActionLink is for links to controller actions, not absolute links.

You don't need a HTML-helper at all, just render this directly:

<a href="file://<%= myUncPath %>">click me</a>
于 2013-04-01T21:18:20.283 回答
0

可能不是使用助手的情况,为什么不只是

<a href="@Html.Raw(filepath)">Download</a>
于 2013-04-01T21:17:42.150 回答