2011-03-09 134 views
32

我試圖在cshtml文件上顯示圖像。 垃圾郵件過濾器阻止我輸入圖像的HTML。然而,源設置爲在MVC視圖上顯示圖像

src= "@Html.Encode(Model.PictureLocation)" alt="IMAGES" 

在viewsource它顯示爲

src= "C:\Documents and Settings\xxx\My Documents\Visual Studio 2010\Projects\MVC\TIQC_ServerInterface\TIQC_ServerInterface\uploads\FileUpload12011_03_02_11_49_22.jpg" alt="IMAGES" 

的圖像是存在於在src路徑中提到的位置。

執行時,頁面不顯示圖像。讓我們知道這裏有什麼不對嗎?

回答

63

您已經指定了客戶端計算機上不存在的絕對路徑。試試這樣:

<img src= "@Url.Content("~/uploads/FileUpload12011_03_02_11_49_22.jpg")" alt="IMAGES" /> 

,或者如果你的模型變量包含「〜/上傳/ FileUpload12011_03_02_11_49_22.jpg」你可以:

<img src= "@Url.Content(Model.PictureLocation)" alt="IMAGES" /> 
+0

這工作的感謝, – 2011-03-09 16:19:05

+1

這隻會如果文件位於內工作網站文件夾...您將如何顯示本地保存在服務器HardDrive中的文件? – 2014-03-16 02:48:45

+1

@StevenHernandez,客戶端無法直接訪問任意硬盤文件。想象一下,如果你問的是什麼可能會發生什麼:-)如果這些文件不是你的網站結構的一部分,你將不得不顯式編寫一個服務器端處理程序(控制器)來公開它們,然後讓客戶端指向這個定製處理程序。 – 2014-03-17 08:17:02

2

src屬性中的路徑必須相對於網站根,而不是服務器上的絕對路徑。所以在你的情況下,這可能類似於「/uploads/FileUpload12011_03_02_11_49_22.jpg」...