Umbraco 7 - 如何允许用户即时添加新的内容字段?

Umbraco 7 - How to allow users to add new content fields on-the-fly?

我是第一次设置 Umbraco 7.7 并为显示在我们组织工作的人员(包括他们的姓名、照片和简历)的页面创建文档类型和模板。

如何配置它以便内容管理器可以添加另一个 "person"——实际上是一组带有用户可编辑图像和文本的 div——而无需手动添加另一个 "person"模板?使用局部视图似乎是解决方案的一部分,但我不清楚如何将它们组合在一起。

我的模板(简化版)目前看起来是这样的:

@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
  Layout = null;
}

<!doctype html>
<html>
  <body>
    <div class="person-bio">
      <img src="/media/person-01-photo.jpg">
      <p>@Umbraco.Field("person-01-name")</p>
      <p>@Umbraco.Field("person-01-title")</p>
      <p>@Umbraco.Field("person-01-bio")</p>
    </div>
    <div class="person-bio">
      <img src="/media/person-02-photo.jpg">
      <p>@Umbraco.Field("person-02-name")</p>
      <p>@Umbraco.Field("person-02-title")</p>
      <p>@Umbraco.Field("person-02-bio")</p>
    </div>
    <div class="person-bio">
      <img src="/media/person-03-photo.jpg">
      <p>@Umbraco.Field("person-03-name")</p>
      <p>@Umbraco.Field("person-03-title")</p>
      <p>@Umbraco.Field("person-03-bio")</p>
    </div>
    <!-- etc., etc. -->
  </body>
</html>

谢谢!任何帮助将不胜感激。

所以根据我的理解,您不需要局部视图。如果就这么简单,你只想输出 div 我看到你在重复,然后循环它:

@foreach (var person in whateverYourCollectionIs) {
     <div class="person-bio">
      <img src="/media/person-01-photo.jpg">
      <p>@person.GetPropertyValue<string>("pseudoNameFieldAlias")</p>
      <p>@person.GetPropertyValue<string>("pseudoTitleFieldAlias")</p>
      <p>@person.GetPropertyValue<string>("pseudoBioFieldAlias")</p>
    </div>
}

该循环将为每个人创建完全相同的 html,但具有适当的姓名、头衔、简历等。这不是您实际使用的代码,但它有望引导您找到正确的代码方向.

这是documentation that will help

您可能需要为此使用嵌套内容控件。它允许您在文档中添加实体列表(在您的案例中是人)

可以在此处找到有关嵌套内容控件的更多文档:https://our.umbraco.com/documentation/getting-started/backoffice/Property-Editors/Built-in-Property-Editors/Nested-Content