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,但具有适当的姓名、头衔、简历等。这不是您实际使用的代码,但它有望引导您找到正确的代码方向.
您可能需要为此使用嵌套内容控件。它允许您在文档中添加实体列表(在您的案例中是人)
可以在此处找到有关嵌套内容控件的更多文档:https://our.umbraco.com/documentation/getting-started/backoffice/Property-Editors/Built-in-Property-Editors/Nested-Content
我是第一次设置 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,但具有适当的姓名、头衔、简历等。这不是您实际使用的代码,但它有望引导您找到正确的代码方向.
您可能需要为此使用嵌套内容控件。它允许您在文档中添加实体列表(在您的案例中是人)
可以在此处找到有关嵌套内容控件的更多文档:https://our.umbraco.com/documentation/getting-started/backoffice/Property-Editors/Built-in-Property-Editors/Nested-Content