Я закончил тем, что сделал что-то хакерское, чтобы все заработало так, как мне нужно.
на моей странице у меня есть:
@{
Layout = "../Shared/Layouts/_Layout.cshtml";
var mycollection = (ViewBag.TheCollection as IQueryable<MyCollectionType>);
ViewBag.ShowContentRight = mycollection != null && mycollection.Count() > 0;
}
тогда в моем макете у меня есть:
@if(IsSectionDefined("ContentRight") && (ViewBag.ShowContentRight == null ||ViewBag.ShowContentRight == true))
{
<div class="right">
RenderSection("ContentRight")
</div>
}
else if(IsSectionDefined("ContentRight"))
{
RenderSection("ContentRight")
}
Если раздел определен, его нужно отобразить, но если нет содержимого, я не хочу <div>
s
Если есть способ получше, я бы хотел знать.