Я нашел этот вопрос Невозможно использовать относительные пути к областям в ASP.NET MVC 2 , что является той же проблемой, что и у меня. Это все еще так в MVC3?
Есть ли способ сохранить файлы содержимого в области относительно области?
Чтобы файл макета в области мог иметь что-то вроде
Без необходимости делать полностью определенная ссылка, требующая каталога областей и имени области или решение вышеуказанного вопроса, которое требует проверки каждой области по каждому запросу.
update / edit
Я решил использовать оба решения в вопрос выше и вопрос ниже (помощник 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 + "/"));
}
}
}