2014-09-22 215 views
2

我正在从ASP.NET转移到MVC并且无法显示简单的图像。我有一个控制器:在View中使用img标签来显示静态图片

Public Class LinkedImageController 
    Inherits Controller 

    ' GET: LinkedImage 
    Function Index() As ActionResult 
     Return View() 
    End Function 
End Class 

和查看:

<img src="~/Views/LinkedImage/grey_336x280.gif" alt="Views-LinkedImage" /><!-- Doesn't work --> 
<img src="~/Content/LinkedImage/grey_336x280.gif" alt="Content-LinkedImage"/><!-- Works --> 

我在查看/ LinkedImage文件夹和内容/ LinkedImage文件夹中的图像的副本,都被设置为复制到输出夹。

正如您从视图中的注释中所看到的只有链接到Content文件夹下的文件的<img...标记可正确显示图像。

虽然这只是我想要的一个单一图像,但它是用于在MVC框架中显示现有html问卷的设计,因此我必须计算出各种静态文件的存储位置。

我是MVC的新手,所以我假设View文件夹中的图像无法显示,因为路由会以某种方式影响它。它是否正确?如果不是,为什么只显示一个图像?

回答

2

这条线在你浏览的Web.config文件夹块直接访问文件,其中:

<system.webServer> 
    <handlers> 
    <remove name="BlockViewHandler"/> 
     <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" /> 
    </handlers> 
</system.webServer> 

最好的政策是放在〜/内容(或其他文件夹在你的应用程序中创建您的静态内容根目录,如果你愿意的话) - 你不想冒险让恶意用户访问你的视图中的代码。

相关问题