2017-08-16 1 views
2

S'il vous plaît aidez-moi à résoudre ce problème. J'ai deux fichiers BaseLayout.cshtml et le second est ExtendedLayout.cshtml pour remplacer le contenu de base de HTML CSS. J'ai besoin d'exécuter la section étendue du fichier extendedLayout.cshtml si la même section est présente en override sinon la base fonctionnerait. Identique au concept de remplacement OOPS.Comment remplacer la section @ dans MVC Razor

Base de mise en page CSS Code

@section HeadCssSection { 
    @*Base Layout CSS *@ 
    @Styles.Render("~/Content/BaseCSS") 
    @RenderSection("HeadCssSection") 

} 

Code de la mise en page Extended CSS

@section HeadCssSection { 
    @Styles.Render("~/Content/ExtendedCSS") 
    @RenderSection("HeadCssSection") 
} 

S'il vous plaît aidez-moi à résoudre ce problème

+0

Pourriez-vous élaborer davantage sur "Je dois exécuter la section étendue du fichier extendedLayout.cshtml si la même section est présente" –

+0

Voici ce que j'ai besoin de faire Si le code CSS disponible en base et étendu, le code étendu devrait être exécuter Si le code CSS est disponible en base et non en extension, le code de base doit être exécuté – Umashankar

+0

@Umashankar Avez-vous résolu le problème? – hasan

Répondre

1

Vous pouvez utiliser isSectionDefined() comme suit

@if (!IsSectionDefined("HeadCssSection")) { 
    RenderSection("HeadCssSection") 
} 
0

Dans la disposition de base, écrivez le code comme ceci.

@section HeadCssSection { 
    @if (IsSectionDefined("HeadCssSection")) 
    { 
     @RenderSection("HeadCssSection") 
    } 
    else 
    { 
     @Styles.Render("~/Content/BaseCSS") 
    } 
} 

Définissez cette HeadCssSection en mode étendu de sorte que le code de mise en page soit étendu. Et si vous voulez exécuter le code de la mise en page de base, mettez le code dans une autre condition.