ASP.NET MVC 3 Не удается найти _viewstart.cshtml при использовании плагинов/встроенных представлений

Я пробую механизм плагинов для ASP.NET MVC 3 (razor), используя встроенные представления, как описано здесь я изменил механизм просмотра, чтобы он наследовал RazorViewEngine, но в остальном ничего не менял. Теперь я вызываю действие контроллера в сборке плагина, которое отображает представление, это работает нормально. Но представление не может найти файл _viewstart.cshtml и, следовательно, макет. В идеале я хотел бы, чтобы хост-приложение определяло начало просмотра и макет. Возможно, мне не следует напрямую вызывать действие контроллера плагина, а только отображать частичные части из плагина и позволять хост-приложению обрабатывать основные контроллеры/представления.

Это местоположения просмотра, которые опробованы в моем собственном VirtualPathProvider:

"~/Plugins/MyMvcApplication.dll/_ViewStart.cshtml"
"~/Plugins/MyMvcApplication.dll/_ViewStart.vbhtml"
"~/Plugins/_ViewStart.cshtml"
"~/Plugins/_ViewStart.vbhtml"
"~/_ViewStart.cshtml"
"~/_ViewStart.vbhtml"

Я также подумываю просто забыть о встраивании представлений, так как это кажется немного запутанным, поэтому я мог бы просто выбрать копирование представлений в хост-приложение, что может упростить отладку для будущих пользователей. Риск заключается в том, что пользователи будут вносить изменения в эти представления, что затруднит обновление плагина. Одна из причин, по которой я сомневаюсь в механизме плагина, связана с возможными последствиями для производительности, хотя я еще не проводил никаких измерений.


person Wout    schedule 29.08.2012    source источник
comment
stackoverflow.com/questions/9191498 /   -  person VJAI    schedule 30.08.2012
comment
Спасибо, Марк, кажется, это невозможно. Может быть, это было неправильно, чтобы попробовать это. Сейчас я пробую подход, использующий частичные представления, и создаю базовые родительские представления в родительском приложении, которое просто выполняет кучу вызовов Html.Action.   -  person Wout    schedule 05.09.2012