Орчард переместить проекцию в новую зону

Я настраиваю пользовательское определение контента, запрос и проекцию, чтобы показать эти определения контента, а затем настраиваю Content-[ItemType].Detail.cshtml, чтобы полностью настроить внешний вид этого элемента. Проблема, с которой я сталкиваюсь, заключается в том, что он помещает подробное представление для этого в Model.Content (в Layout.cshtml), но мне бы очень хотелось вместо этого добавить подробное представление для этого типа контента в зону с именем LargeLeft.

Например, у меня есть нижеприведенное, которое используется, когда появляется зона LargeLeft с зоной под названием SmallRight (которая очень хорошо работает для своей части):

          @* large left bar, small right column *@
          @if (Model.LargeLeft != null && Model.SmallRight != null) {
            <div class="col_12">
              @Zone(Model.LargeLeft)
              @if (Model.SocialMedia != null) {
                @Zone(Model.SocialMedia)
              }                  
            </div>
            <div class="col_4">
              @Zone(Model.SmallRight)
            </div>
          }

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

              @if (Model.Content != null) {
              <div class="col_16">
                @Zone(Model.Content)
                @if (Model.SocialMedia != null) {
                  @Zone(Model.SocialMedia)
                }                
              </div>
            }

Я полагаю, что это что-то с Placement.info, но поскольку я не пытаюсь сдвинуть отдельные части (мой дизайнер хотел получить полный контроль над HTML, следовательно, переопределить шаблон) и мне нужно поместить все это в определенное имя зоны, я немного потерял.

Есть идеи?


person Scott Salyer    schedule 25.06.2014    source источник


Ответы (1)


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

Вы можете отправить фигуру в произвольную зону верхнего уровня в Placement.info, используя косую черту перед именем зоны.

Также можно добавить фигуру в зону верхнего уровня из кода, используя Layout.ZoneName.Add(yourShape).

Подробнее о создании разметки для типа без размещения: http://weblogs.asp.net/bleroy/easy-content-templates-for-orchard-take-2

person Bertrand Le Roy    schedule 26.06.2014