Я бы сказал, что точка, когда ваша главная страница известна, будет сразу после того, как ваш просмотр был разрешен вашим механизмом просмотра. Вы можете установить свою главную страницу при вызове метода View на вашем контроллере, хотя:
public ActionResult Index()
{
return View("index","masterpagename");
}
Я думаю, что если вы хотите что-то сделать со своей главной страницей, ЭТО было бы способом. Я не знаю контекст вашего вопроса, но я предполагаю, что вы хотите манипулировать представлением и / или данными представления в зависимости от того, какая мастер-страница используется? Может быть, решение вашей проблемы не в том, чтобы программно получить имя главной страницы?
Добавление после редактирования:
Что вы можете сделать, это создать новый «базовый» контроллер, который наследует класс Controller по умолчанию. Затем вы переопределяете методы View и говорите своим разработчикам использовать это:
public class MySuperController : Controller
{
protected override ViewResult View(string viewName, string masterName, object model)
{
// do something here so your masterpage is different depending on the context //
string newMasterName = "something-something";
return base.View(viewName, newMasterName, model);
}
}
Я «думаю», что все другие методы представления либо проходят через это, либо не используются в вашем случае (те, которые требуют, чтобы вы передали IView).