MVC5区域下的图像路径

时间:2014-11-20 13:40:20

标签: c# .net razor asp.net-mvc-5

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

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

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能够解析标记中的路径。

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

1 个答案:

答案 0 :(得分:1)

我收到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>