Визуализация представлений Spark в веб-приложении Windows Azure ASP.NET MVC3 - PullRequest
4 голосов
/ 15 февраля 2011

Я построил веб-приложение в ASP.NET MVC3 с механизмом просмотра Spark 1.5 - прекрасно работает на моем локальном компьютере разработки, но при размещении в Windows Azure он не может найти представления Spark.Я получаю следующее стандартное сообщение об ошибке:

The view 'Logon' or its master was not found or no view engine supports the searched locations. The following locations were searched:
~/Views/Account/Logon.aspx
~/Views/Account/Logon.ascx
~/Views/Shared/Logon.aspx
~/Views/Shared/Logon.ascx
~/Views/Account/Logon.cshtml
~/Views/Account/Logon.vbhtml
~/Views/Shared/Logon.cshtml
~/Views/Shared/Logon.vbhtml
Account\Logon.spark
Shared\Logon.spark

Мне кажется, что Spark не выполняет поиск в тех же папках, что и WebForms / Razor (так как префикс ~ / Views отсутствует), но я не могу найти, где этонастроен в Spark.

Я попытался добавить следующее в код запуска:

settings.AddViewFolder( ViewFolderType.VirtualPathProvider,new Dictionary<string, string> { { "virtualBaseDir", "~/Views/" } } );

... но без изменений.Не могу не почувствовать, что что-то ослепительно очевидно, что я скучаю.

1 Ответ

2 голосов
/ 16 февраля 2011

Вам не нужно добавлять провайдера виртуальных путей ~/Views/, что происходит автоматически по соглашению, и пути поиска, приведенные выше, представляют собой просто вывод двух движков представления (Razor и Spark), слегка отличающихся. У Spark есть корневой путь просмотра Views, уже когда он говорит, что Account\Logon.spark он уже находится в папке Views.

У меня такое ощущение, что ваши представления в режиме искры фактически не копируются в Azure при упаковке и развертывании. Это похоже на dll MVC3, прежде чем они были там, вам нужно было настроить их на локальное копирование, чтобы Azure имел к ним доступ.

Если вы переименуете пакет Azure в файл .zip и откроете его, чтобы увидеть, включены ли представления как часть содержимого. Если нет, попробуйте выделить один из файлов Spark в обозревателе решений и проверьте свойства. Установите Copy to Output Directory на Copy Always и соберите и упакуйте свой проект Azure.

Ваша локальная папка bin в проекте также должна иметь папку представлений с представлениями Spark, содержащимися для проверки.

Попробуйте загрузить этот пакет и посмотреть, сработает ли он?

Надеюсь, это поможет,
Rob

...