【发布时间】:2017-09-18 11:03:53
【问题描述】:
在我们的网站上,客户可以将不同的项目添加到页脚列中,即文本框。我们希望能够将这些不同项目的代码保留在一个局部视图中,因为这些项目用于站点的其他区域,并且希望将代码重复降至最低。
我想知道是否可以在 foreach 语句中嵌套一个局部视图,然后根据父 foreach 传递一个 if 语句。
我在名为 Three_Column_Footer 的局部视图中有以下代码:
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
var root = Model.Content.Site();
var thefooter = root.FirstChild("footer").Children();
}
<footer class="footer color-main">
<div class="container">
<div class="row">
@foreach(var foot in thefooter){
var childcol = foot.Children;
<div class="col-6">
@foreach(var item in childcol){
@Html.Partial("Footers/FooterStubs", item)
}
</div>
}
</div>
</div>
</footer>
我需要以某种方式在称为 FooterStubs 的 Partial 中识别上述 foreach。这可以用@inherits Umbraco.Web.Mvc.UmbracoViewPage<IPublishedContent> 或Model.GetPropertyValue<IEnumerable<IPublishedContent>> 来完成吗?如果可以的话怎么办?
谢谢!
【问题讨论】:
-
请包含
FooterStubs的内容,尤其是前6行。 -
目前在 FooterStubs 中只有这一行,因为这让我感到困惑:@inherits Umbraco.Web.Mvc.UmbracoViewPage
-
所以你有两个局部视图,你想把一个引用到另一个?或者你有两个 PV(局部视图)相互引用意味着他们互相调用......?如果上面是您的“Three_Column_Footer”代码,则令人困惑
标签: c# asp.net-mvc razor umbraco