【发布时间】:2015-01-18 09:34:21
【问题描述】:
我对 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 能够解析标记中的路径。
如何在内容下找到我的资源?
【问题讨论】:
-
为什么要在区域中放置像图像这样的静态内容?
-
因为它们特定于它们所在的区域,并且“全局”静态文件夹中可能存在同名的图像。让我们说这是我无法控制的设计问题。您知道如何解决实际问题吗?
-
就我个人而言,我会使用诸如
/content/area1等的文件夹结构,但在您的示例中/Areas/Area1/Content/Images/image1.png应该可以正常工作,当您在浏览器中键入该URL 时会发生什么? -
我收到 404。(“HTTP 404。您正在寻找的资源..”)。
标签: c# .net razor asp.net-mvc-5