2011-03-09 126 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”...