MVC5 区域下的图像路径

本文关键字:图像 路径 区域 MVC5 | 更新日期: 2023-09-27 18:31:07

我是MVC5的新手,我正在尝试在我的一个区域下本地拥有一个内容文件夹。不幸的是,我似乎无法在输出中渲染图像,因为路径变得不正确(?),并且我无法弄清楚如何正确引用它。

在我的解决方案中,我以下内容:

ProjectX
  Areas
     Area1
        Controller
           Area1DefaultController
        Content
           Images
               image1.png
        Views
               View1.cshtml

在我看来,我使用这个:

@Url.Content("~/Areas/Area1/Content/Images/image1.png")

我也试过..

@Url.Content("~/Content/Images/image1.png")
@Url.Content("/Content/Images/image1.png")
@Url.Content("Content/Images/image1.png")

..并且所有情况下的结果都是损坏的图像(即路径不正确)。我想路由以某种方式阻止了图像被检索,但我无法弄清楚如何解决问题。

这是我的区域注册:

public class Area1Registration : AreaRegistration
{
    public override string AreaName
    {
        get { return "Area1"; }
    }
    public override void RegisterArea(AreaRegistrationContext context)
    {
        context.MapRoute(
            "Area_default",
            "Area/{action}/{id}",
            new { controller = "Area1Default", action = "Index", id = UrlParameter.Optional }
        );
    }
}

更新:ReSharper能够解析标记中的路径。

如何在"内容"下找到我的资源?

MVC5 区域下的图像路径

我收到 404 的原因是 Area1 web.config 中的 BlockViewHandler 。我创建了一个新的 web.config 并放置在我的 Static 文件夹中以解决问题。

<?xml version="1.0" encoding="utf-8"?>
<configuration>  
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <handlers>
      <remove name="BlockViewHandler" />     
    </handlers>
  </system.webServer>
</configuration>