【发布时间】:2011-02-26 22:47:47
【问题描述】:
我发现了这个问题Can't use relative paths with areas in ASP.NET MVC 2,这与我遇到的问题相同。在 MVC3 中仍然是这种情况吗?
有没有办法将内容文件保存在相对于该区域的区域中?
这样一个区域中的布局文件可以有类似的东西
无需建立完全限定的链接,需要区域目录和区域名称或上述问题的解决方案,即需要在每个请求上检查每个区域。
更新/编辑
我决定同时使用上述问题中的解决方案和下面的解决方案(html 助手) - 取决于项目/情况。我的上述实现使用 app.setting 来存储区域名称和扩展名,以便我可以将模块作为我的库的一部分。
var context = HttpContext.Current;
var path = context.Request.Path;
var list = ... //code that gets from app.config and then saves it
var extensions = ... // to the cache as non-removable with a dependency on web.config
foreach (var area in list)
{
if (!path.Contains(area + "/")) continue;
foreach (var extension in extensions)
{
if (path.EndsWith("." + extension))
{
context.RewritePath(path.Replace(area + "/", "Areas/" + area + "/"));
}
}
}
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-areas