2017-06-16 2 views
2

Was ist der beste Weg, um einige Elemente innerhalb einer Verbindung zu verpacken, wenn eine Bedingung wahr ist?Wrap Inhalt mit Link, wenn Bedingung = wahr?

So kann sagen, ich habe diese Auszeichnung:

<div> 
    <h1>Header</h1> 
    <span>Subheader</span> 
    <p>Lorem ipsum</p> 
</div> 

Wenn ich habe eine Bedingung == true, dann ist die ganze obige Markup in einem Link gewickelt werden soll, etwa so:

<a href="#"> 
    <div> 
     <h1>Header</h1> 
     <span>Subheader</span> 
     <p>Lorem ipsum</p> 
    </div> 
</a> 

Dies ist in Razor/C# -Code. Was ist der beste Weg, ohne das Markup zu duplizieren?

+0

'@if (Zustand) {}'? – dcg

+1

Wont Arbeit .. es wird sich beschweren, dass es ein offenes Tag () ist, die nicht geschlossen wurde – brother

+0

@EdPlunkett haben Sie das versucht? Funktioniert nicht. – mxmissile

Antwort

1

ich so das Gefühl, betrügt, stinkende und hack'ish aber:

@if (condition) { @Html.Raw("<a href='#'>") } 
    <div> 
     <h1>Header</h1> 
     <span>Subheader</span> 
     <p>Lorem ipsum</p> 
    </div> 
@if (condition) { @Html.Raw("</a>") } 
+0

Sehr interessiert an Alternativen ... – mxmissile

+0

Zustimmen, ein wenig hack'ish .. aber es hat den Trick :) Thx – brother

1

Vielleicht etwas weniger als hackish @ Html.Raw ("...")

@if (condition) { 
    @:<a href="#"> 
} 
<div> 
    <h1>Header</h1> 
    <span>Subheader</span> 
    <p>Lorem ipsum</p> 
</div> 
@if (condition) { 
    @:</a> 
} 

bezogen werden: What does @: mean in ASP.net MVC Razor?

Verwandte Themen