2013-02-21 3 views
1

У меня есть шаблон на Umbraco, я настроил Partial View, который проверяет, есть ли выбранный для него набор героев. Я хочу проверить, отправляет ли этот Partial какой-либо контент на страницу, если это не я хочу отобразить 1 div, если выбран блок героя, я хочу 2 divs.Umbraco MVC Check is Partial имеет контент

Мой код в настоящее время;

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 всегда имеет значение null.

+0

Я добавил ответ, который, вероятно, поможет вам в случае, если у вас все еще есть эта проблема или в будущих проектах. – lucuma

ответ

0

Другой способ сделать это будет с jquery, у вас есть обертка div, где вы отбрасываете содержимое своего частичного, используя jquery при загрузке, которую вы проверяете содержимым div, пуст, если он затем отображает другие 2 div's делают один.

0

Я не считаю, что частичные используются таким образом. Поскольку кажется, что вы пытаетесь получить скалярное значение из функции, я считаю, что вспомогательная функция является вашим лучшим выбором и может использоваться глобально во всем приложении.

Добавить файл в App_Code: HeroHelper.cshtml

Затем создайте функцию:

@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 помощника для этого, но это просто зависит от вашего варианта использования. Эта вспомогательная функция или набор функций, которые вы использовали бы в своей частичной части, чтобы сохранить ее целостность.