首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Umbraco检查部分包含内容

Umbraco检查部分包含内容
EN

Stack Overflow用户
提问于 2013-02-21 20:11:09
回答 2查看 413关注 0票数 1

我已经在Umbraco上有一个模板,我已经设置了一个局部视图,以检查是否有一个英雄单位选择的页面。我想检查这个部分是否将任何内容发送到页面中,如果不是,我想呈现1个div,如果选择了一个英雄单位,我想要2个div。

我目前的代码是;

代码语言:javascript
复制
var heroUnit = @Html.Partial("HeroUnits",@Model.Content);
    @if(heroUnit != null)
    {
        <div class="span6">
            @Html.Raw(Model.Content.GetPropertyValue<string>("bodyText"))
        </div>
        <div class="span3">
            @Html.Partial("HeroUnits",@Model.Content);
        </div>      
    } else {
        <div class="span9">
            @Html.Raw(Model.Content.GetPropertyValue<string>("bodyText"))
        </div>
    }

这段代码似乎认为HeroUnit总是为空。

EN

回答 2

Stack Overflow用户

发布于 2013-03-14 16:28:25

另一种方法是使用jquery,你有一个包装器div,你把你的部分内容放到其中,使用jquery在加载时检查div的内容是空的,如果它是渲染其他2个div,否则渲染一个。

票数 0
EN

Stack Overflow用户

发布于 2013-08-30 22:07:54

我不相信分音是这样用的。因为看起来你想从函数中获取一个标量值,所以我认为helper函数是你最好的选择,并且可以在你的应用中全局使用。

添加一个文件到App_code: HeroHelper.cshtml

然后创建你的函数:

代码语言:javascript
复制
@using Umbraco
@using Umbraco.Core
@using Umbraco.Web.Models;
@using Umbraco.Core.Media;
@using Umbraco.Core.Models;
@using Umbraco.Web;
@using Umbraco.Web.umbraco;
@functions {

   public static bool HasHero(IPublishedContentNode node) 
   {
       // this contains your logic, I'll make somethingup
        return node.HasValue("HereUnit");       
   }
}

现在可以使用以下命令了:var heroUnit = HeroHelper.HasHero(Model.Content);

您还可以为此创建一个html助手,但这仅取决于您的用例。这个helper函数或一组函数,你也会在你的partial中使用,以保持它的一致性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15001963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档