ASP.NET MVC 2 Пользовательский механизм просмотра - PullRequest
1 голос
/ 12 октября 2010

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

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

Параметр "masterName" всегда пуст, хотя viewName не является пустым, и этому представлению сопоставлена ​​главная страница.

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

У вас есть идеи?

Заранее спасибо! Juan

1 Ответ

1 голос
/ 12 октября 2010

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

например:

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

Поэтому одним из решений является оставить значение основного имени пустым, если оно не переопределено выбранной темой, и только затем переопределить его в вызове View. Для этого не нужен пользовательский движок просмотра

...