В Razor при загрузке частичного представления можно просто указать имя частичного представления, а механизм просмотра Razor будет искать RazorViewEngine.PartialViewLocationFormats:
@Html.RenderPartial("_PartialView", Model);
будет фактически искать местоположения, указанные в PartialViewLocationFormats в механизме просмотра, например,
~/Views/Home/_PartialView.cshtml
~/Views/Shared/_PartialView.cshtml
Однако при указании макета мне кажется, что я вынужден указать конкретный путь к макету:
@Layout = "~/Views/Shared/MyLayout.cshtml";
То, что я хотел бы сделать, это указать макет только по имени и найти фактический макет, выполнив поиск списка общих местоположений:
@Layout = "MyLayout";
... но я не могу найти никаких возможностей для этого. Поскольку я не мог найти никакой документации относительно этого, я попытался играть с настройкой RazorViewEngine.MasterLocationFormats, но это свойство не используется при поиске макетов.
Кто-нибудь знает, как это сделать?