это не работает в областях. Он указывает на корень и игнорирует тот факт, что он был инициирован в области.

ел этот вопросНевозможно использовать относительные пути с областями в ASP.NET MVC 2 это та же проблема, что и у меня. Это все еще так в MVC3?

Есть ли способ сохранить файлы содержимого в области относительно этой области?

Так что файл макета в области может иметь что-то вроде

Без необходимости делать полностью квалифицированную ссылку, требуя каталог областей и имя области или решение вышеуказанного вопроса, который требует проверки для каждой области в каждом запросе.

обновление / редактирование

Я решил использовать как решение в приведенном выше вопросе, так и приведенное ниже (html helper) - в зависимости от проекта / ситуации. Моя реализация вышеупомянутого использует 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 + "/"));
      }

    }
 }

Ответы на вопрос(5)

Ваш ответ на вопрос