Ben (yani çalışmıyor) aşağıdaki bir Page.cshtml benzer vardır:Asp.net mvc Razor ViewEngine ile isteğe bağlı bir seçenek oluşturmanın bir yolu var mı?
@{
Layout = "../Shared/Layouts/_Layout.cshtml";
var mycollection = (ViewBag.TheCollection as IQueryable<MyCollectionType>);
}
<h2>@ViewBag.Title</h2>
content here
@if (mycollection != null && mycollection.Count() > 0)
{
@section ContentRight
{
<h2>
Stuff
</h2>
<ul class="stuff">
@foreach (MyCollectionType item in mycollection)
{
<li class="stuff-item">@item.Name</li>
}
</ul>
}
}
Dediğim gibi, bu işe yaramaz. Koleksiyonda hiçbir şey yoksa bölümü tanımlamak istiyorum. Bu çalışma gibi bir şeyin olması için herhangi bir yolu var mı? Yoksa, diğer seçeneklerim nelerdir? Bu Razor ViewEngine için çok yeni. Benim düzende
Düzenleme
i vardır: bölüm boşken
@if(IsSectionDefined("ContentRight"))
{
<div class="right">
RenderSection("ContentRight")
</div>
}
ne ben istemiyorum çıkışına div olduğunu.
Maalesef şu anda muhtemelen en iyi seçeneğiniz bu. Başka bir olası seçenek, "@section" in aşağıya çevrildiği "DefineSection" u çağırmak ve doğrudan çağırmaktır. Sorun, Markör'ü Razor v2'de (geleceğe baktığımız bir şey) bir lambdaya koyamazsınız, böylece içeriğinizi bir @helper yapısında tanımlamanız ve bu yardımcıyı DefineSection lambda'dan çağırmanız gerekir. . Sonunda, sahip olduğunuz gibi bunu yapmak daha kolay olabilir. Ama bunu gelecekteki sürümlerde geliştirmeye bakacağız! –