Umbraco 7.0.3 マクロでエラーが発生しました。このマクロはすべての子をトラバースし、リストにすぎません。まず、Umbraco バック オフィスを使用して、基本的なナビゲーションとサイド メニュー項目を作成しました。一方、ローカル環境がセットアップされたら、ローカルで作業を開始しました。
問題は、ナビゲーション用にバック オフィスを使用してビルドしたコードは正常に動作しますが、項目が VS2012 Ultimate バージョンで作成された場合、元の動作中のナビゲーション マクロから同じコードを貼り付けただけでも、同じコードが動作しないことです。
次のエラーが表示されます:「Umbraco.Web.Models.DynamicPublishedContentList」には「Any」の定義が含まれていません。これは、ページ リストが動的であることを示しています。面白いことに、既存のナビゲーションでは同じコードが機能しますが、新しいアイテムでは機能しないのはなぜですか? VS2012 に、ファイルを UTF8 エディターまたは無効な html で使用できないとマークする設定はありますか?
私の質問は、カミソリ マクロで count または Any アイテムを見つけるにはどうすればよいですか? 私はすでに Enumerable items count と任意のメソッドを試しましたが、役に立ちません。
存在するアイテムの数を見つける方法についての指針は役に立ちます。
Paulo の要求について、さらに情報を提供します。「startNode.Children.Where("Visible").Any()」行でエラーが発生しました。以下はマクロコードです。
@inherits Umbraco.Web.Macros.PartialViewMacroPage
@*
=== Macro Parameters To Create ===
Show:True Alias:nodeId Name:Node ID Type:Content Picker
*@
@if (Model.MacroParameters["startNodeID"] != null)
{
@* Get the start node as a dynamic node *@
var startNode = Umbraco.Content(Model.MacroParameters["startNodeID"]);
if (startNode.Children.Where("Visible").Any())
{
<div class="container">
<div class="row">
@foreach (var page in startNode.Children.Where("Visible"))
{
<div class="col-sm-3 col-md-3">
<div class="thumbnail">
<img src="~/images/Tiles/300x200.jpg" alt="@page.Name">
<div class="caption">
<h3><a href="@page.Url">@page.Name</a></h3>
<p>@page.GetPropertyValue("summary").Substring(0, 100)</p>
<a href="@page.Url" class="btn btn-default">Read More</a>
</div>
</div>
</div>
}
</div>
</div>
}
}