Umbraco 7不匹配{和}



我使用局部视图来列出特定节点的前5个子节点。

这是有效的,但前提是我在之前放一个div

前臂

例如

@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
<div class="title">Test</div>
<ul>
@{
var ow = @owCore.Initialise(1085); 
<div> </div>
var node = Umbraco.Content(1105);

foreach (var item in node
            .Children.Where("Visible")
            .OrderBy("Id descending")
         .Take(5)
        )
{
    <li><a href="@item.Url">@item.pageTitle</a></li>
}
}   
</ul>

生成所需的未排序列表。

但是,如果我删除空的div

@继承Umbrac.Web.Mvc.UmbracoTemplatePage

测验
<ul>
@{
    var ow = @owCore.Initialise(1085); 
    var node = Umbraco.Content(1105);

    foreach (var item in node
                .Children.Where("Visible")
                .OrderBy("Id descending")
             .Take(5)
            )
    {
        <li><a href="@item.Url">@item.pageTitle</a></li>
    }
}   

我得到的错误是

编译器错误消息:CS1513:}应为

来源错误:

113号线:114号线:115号线:

Clear看起来关闭"}"的次数太少

假设div强制关闭}?

我已经检查了owCore(这是我在App_Code中构建的函数库:然而,我已经把它剥离了,它现在什么也没做,只是为了确保有匹配的花括号:

@using Umbraco
@using Umbraco.Core.Models
@using Umbraco.Web
@functions{

    public static int Initialise(int siteDocID){
            return 0; 
    }
}   

但是,如果我从部分视图中删除@owCore代码

@继承Umbrac.Web.Mvc.UmbracoTemplatePage

测验
<ul>
@{

    var node = Umbraco.Content(1105);

    foreach (var item in node
                .Children.Where("Visible")
                .OrderBy("Id descending")
             .Take(5)
            )
    {
        <li><a href="@item.Url">@item.pageTitle</a></li>
    }
    }   
</ul>

一切又好了。

这是否意味着这肯定是owCore的问题,或者只是其他原因导致不匹配

我已经检查了调用此局部视图的模板,找不到问题。

这没有道理。有人能解释一下吗?

谢谢!

这实际上更像是一个剃刀般的问题。

您可以用@{开始您的代码块,这样您就不需要在owCore前面使用@。删除它将使其即使没有<div>也能进行渲染,因为剃刀解析器不再被@混淆。

相关内容

  • 没有找到相关文章

最新更新