2013-04-01 81 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