2013-04-20 3 views
1

. Реализация проекта MVC View Engine в Orchard, похоже, не находит представления или частичные представления в каталоге «Общие», как это делает механизм просмотра по умолчанию.Обычный пользовательский модуль Orchard.

Так, если в моем cshtml я имею в виду частичный вид как:

@Html.Partial("ViewFromShared") 

Это произойдет сбой в модуле пользовательского Orchard (но работа в обычном веб-сайте ASP .NET).

Как я могу заставить механизм просмотра Orchard искать общий каталог?

Кроме того, есть ли способ сделать Orchard распознать мою страницу ViewStart?

Спасибо.

UPDATE:

я могу следовать точным инструкциям, чтобы воспроизвести:

  • Создать новый проект ASP .NET MVC 4 (MyApp).
  • Добавьте новый cshtml в общий каталог (SharedFile.cshtml).
  • Добавить новый вид (Views/XYZ/MyView) и контроллер (контроллеры/XYZController).
  • Call View («MyView») из нового метода Index Index.
  • Добавить Html.Partial ("SharedFile") в MyView
  • Публикация веб-сайта в сад/модули/MyApp.
  • Добавить Module.txt (Имя: MyApp)
  • Добавить IRouteProvider и следующий RouteDescriptor

    new RouteDescriptor 
         { 
          Priority = 5, 
          Route = new Route(
           "Modules/MyApp/{controller}/{action}", 
           new RouteValueDictionary 
            { 
             {"area", "MyApp"} 
            }, 
           new RouteValueDictionary(), 
           new RouteValueDictionary 
            { 
             {"area", "MyApp"} 
            }, 
           new MvcRouteHandler()) 
         }, 
    
  • Перейти к myorchardsite/Modules/MyApp/XYZ/индекс в браузере.

  • ViewFromShared не найден и бросает исключение:

Ожидаемый результат: ViewFromShared должен оказывать на странице

  • Если удалить вызов @ Html.Partial ("ViewFromShared") _ViewStart.cshtml и _Layout.cshtml не соблюдаются, и нет тегов html/head/body ... только содержимое MyView.cshtml.

Ожидаемый результат: У меня должен быть отображен _ViewStart.cshtml и _Layout.cshtml на странице.

+0

Пожалуйста, добавьте более подробную информацию: как общий каталог? Какова ваша страница ViewStart, что вы ожидаете и как это происходит? –

+0

Я добавил более подробную информацию ... любые мысли? – Jeff

+0

Почему бы не сделать @ Display.ViewFromShared() вместо этого? –

ответ

1

Вы можете использовать @Display.ViewFromShared(), чтобы создать форму на лету и сделать ее рендеринга на месте. Вы даже можете установить свойства в форме, если вам нужно, используя синтаксис, например @Display.ViewFromShared(SomeProperty: val, SomeOtherProperty: 42). См. https://weblogs.asp.net/bleroy/creating-shapes-on-the-fly для более подробной информации о создании фигур на лету.

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