Вам просто нужно добавить файл с именем:
_ViewStart.cshtml
Под каждой папкой просмотра области:
/Areas/Area1/Views/_ViewStart.cshtml
И отредактируйте файл так, чтобы он указывал на корневой макет следующим образом:
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
Чтобы это работало, вам не нужно указывать значение в свойстве макета представления, если вы это сделаете, вы переопределите глобальный макет
Примечание: как упомянул Тони, вы можете редактировать свойство макета каждого представления, чтобы указывать на корневой макет, однако это не рекомендуемый способ сделать это, так как вы будете связывать свои представления с макетом и изменять его будет болезненно
Редактировать 1
Если вы хотите использовать код для установки макета представления по умолчанию, возможно, вам следует подумать о написании собственного механизма представления.
Попробуйте погуглить о кастомах RazorViewEngine
иRazorView
Эта статья может стать хорошей отправной точкой
http://weblogs.asp.net/imranbaloch/archive/2011/06/27/view-engine-with-dynamic-view-location.aspx
Я ничего подобного не делал, но надеюсь, что указываю вам в правильном направлении