2010-10-11 3 views
1

Я разрабатываю настраиваемый механизм просмотра для реализации тем для моего веб-приложения asp.net mvc 2. Проблема, с которой я столкнулся в том, что в этой функции:ASP.NET MVC 2 Пользовательский механизм просмотра

public override ViewEngineResult FindView(ControllerContext controllerContext, string viewName, string masterName, bool useCache) 

Параметр «masterName» всегда пусто, хотя VIEWNAME не пуст и что вид имеет главную страницу, связанную с ним.

Я хотел бы узнать главную страницу, поэтому у меня может быть тема по умолчанию и вы можете создать тему, которая изменяет только мастер-страницы, а не страницы содержимого. Поэтому, когда тема выбрана, я хочу использовать главную страницу темы, но на странице содержимого темы по умолчанию. Но также я хочу дать возможность создавать темы, которые переопределяют главную страницу и некоторые страницы контента, а некоторые другие нет. Для этого мне нужно было только masterName, что страница использует, но я получаю пустую строку :(

У вас есть какие-нибудь идеи?

Спасибо заранее! Juan

ответ

1

Параметр «masterName "не является обязательным по умолчанию вид будет использовать мастер-страницу, определенную в представлении, но если указан paraeter он отменит это со страницей мачты поставляется

например:..

Return View("viewname", Model); // uses default master page 
Return View("viewname", Model, "MasterName"); // users supplied MasterName 

Поэтому одно из решений заключается в том, чтобы оставить имя основного имени пустым, если оно не переопределено выбранной темой, и только затем переопределить его в вызове «Просмотр». Это не требует настраиваемого механизма просмотра.

+0

Как я хочу изменить некоторые страницы, в зависимости от них мне нужен пользовательский механизм просмотра. Есть ли способ получить имя главной страницы, которое определено в представлении? – Juan

+0

Это не то, что доступно, если вы не очень глубоко разбираетесь в WebFormViewEngine в методах рендеринга. Если это не будет отменено, это вообще не требуется. – Clicktricity

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