C# MVC5区域下的图像路径
我是MVC5的新手,我正在尝试在我的一个区域下本地创建一个内容文件夹。不幸的是,我似乎无法在输出中渲染图像,因为路径变得不正确(?),我也不知道如何正确地引用它 在我的解决方案中,我提供了以下内容:C# MVC5区域下的图像路径,c#,.net,razor,asp.net-mvc-5,C#,.net,Razor,Asp.net Mvc 5,我是MVC5的新手,我正在尝试在我的一个区域下本地创建一个内容文件夹。不幸的是,我似乎无法在输出中渲染图像,因为路径变得不正确(?),我也不知道如何正确地引用它 在我的解决方案中,我提供了以下内容: ProjectX Areas Area1 Controller Area1DefaultController Content Images image1.png V
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")
..并且所有情况下的结果都是损坏的图像(即路径不正确)。我猜路由某种程度上阻止了图像被检索,但我不知道如何解决这个问题
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<remove name="BlockViewHandler" />
</handlers>
</system.webServer>
</configuration>
这是我的区域注册:
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能够解析标记中的路径
如何在内容下找到我的资源?我收到404的原因是区域1
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>
为什么要将静态内容(如图像)放在区域中?因为它们特定于它们所在的区域,并且“全局”静态文件夹中可能有同名的图像。让我们说这是一个我无法控制的设计问题。你知道如何解决实际问题吗?我个人会使用文件夹结构,如/content/area1
等,但在你的示例中/Areas/area1/content/Images/image1.png
应该可以正常工作,当你在浏览器中键入URL时会发生什么?我收到404。(“HTTP 404.您正在查找的资源..”)。