在我的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文档发送。这是我们要去的功能类型。
以下是当前导致问题的示例地址:
\\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
答案 0 :(得分:0)
可能不是使用助手的情况,为什么不只是
<a href="@Html.Raw(filepath)">Download</a>
答案 1 :(得分:0)
ActionLink
用于指向控制器操作的链接,而不是绝对链接。
您根本不需要HTML帮助程序,只需直接渲染:
<a href="file://<%= myUncPath %>">click me</a>