Обертка формы сада
Я слежу за документацией Орчарда по "Оберткам", но не могу обернуться. http://docs.orchardproject.net/Documentation/Understanding-placement-info
Согласно документации, мы должны были создать Wrapper.HtmlContent.cshtml
и вставьте в него следующее.
<div class="htmlWrapperContent">
@Model.Html
</div>
Но что это Model.Html
? Это Shape
? я знаю Model
это сама форма. Html
не является встроенным свойством Shape
или же IShape
поэтому я считаю, что это должно быть какое-то пользовательское свойство, например, через код shapeHelper.My_Shape(Html: "Hello World")
?
Давайте начнем с иллюстрации того, чего я пытаюсь достичь. Я сделал следующее:
Placement.info
<Placement>
<Place My_Shape="Content:before;Wrapper=My_Wrapper" />
</Placement>
My.Shape.cshtml
<div class="myShape">
@* let's pretend that the line below prints "Hello World" *@
@Model.Html
</div>
My.Wrapper.cshtml
<div class="htmlWrapperContent">
@* what should I be putting here? *@
@* I have tried the following *@
@* #1 *@
<div class="myShape">
@Model.Html
</div>
@* Obviously this works but then why would I use a wrapper to do this? I might as well just surround `My.Shape.cshtml` with `<div class="htmlWrapperContent"></div>` above. *@
@* #2 *@
@Display(Model)
@* This doesn't work because circular reference. IIS killed itself. *@
@* #3 *@
@DisplayChildren(Model)
@* Since `Model._items` is empty, this doesn't print anything. *@
</div>
Я ожидаю, как должна выглядеть страница
<div class="htmlWrapperContent">
<div class="myShape">
Hello World
</div>
</div>
Итак, мой вопрос, как следует My.Wrapper.cshtml
похоже, чтобы оправдать мои ожидания?
1 ответ
Вскоре после публикации моего вопроса я нашел ответ здесь
Фруктовый сад - Обертки для полей
Итак, обертка должна быть
My.Wrapper.cshtml
<div class="htmlWrapperContent">
@Display(Model.Metadata.ChildContent)
</div>
Документация Orchard может использовать некоторые улучшения.