2009-02-17 6 views
2

Какова самая ранняя точка, которую я могу программно получить от имени главной страницы, которая будет использоваться в приложении MVC asp.net?Получение Masterpage Имя в asp.net MVC

Идея изменения используемых видов просмотра в зависимости от главной страницы. Я хочу как можно раньше установить что-то, чтобы отдельные разработчики не знали, чтобы заполнить его. В идеале это просто происходит на заднем плане.

В упрощенном сценарии у нас были бы разные мастер-страницы для разных типов страниц, например, по умолчанию с заголовком, leftnav, rightnav и нижним колонтитулом или безопасным, который может отсутствовать rightnav.

Благодаря

ответ

2

Я бы сказал, что момент, когда ваша главная страница, как известно, будет сразу же после того, как ваша точка зрения была решена с помощью вашего зрения двигателя. Вы можете установить MasterPage при вызове метода View на контроллере, хотя:

public ActionResult Index() 
{ 
    return View("index","masterpagename"); 
} 

Я думаю, если вы хотите сделать что-нибудь с вашим MasterPage, который был бы так. Я не знаю контекста вашего вопроса, но я предполагаю, что вы хотите манипулировать представлением и/или viewdata в зависимости от того, какая главная страница используется? Может быть, решение вашей проблемы не является программным получением названия главной страницы в первую очередь?

Дополнение после вашего редактирования: Что вы можете сделать, так это создать новый «базовый» контроллер, который наследует класс контроллера по умолчанию. Тогда вы отменяют 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); 
    } 
} 

Я думаю, что "все другие методы просматривать либо получить проходят через это, или не используются в вашем случае (те, требуя передать IVEW).

+0

Да, это правильно, по существу изменяя данные вида в зависимости от используемой главной страницы. – NikolaiDante

+0

У вас есть упрощенный случай, который вы могли бы добавить в свой вступительный пост? Я не могу понять причину этого? –

+0

Я обновил свой пост, надеюсь, что он станет яснее: o) – NikolaiDante

Смежные вопросы