ASP.NET MVC Razor bedingtes Rendering eines Elements

8

Wie kann man ein HTML-Element in Razor 2 bedingt rendern?

Angenommen, ich hätte das Tag

%Vor%

Und ich wollte die & lt; -div- & gt; Tag aus dem Rendering, wenn der Wert von @somevalue gleich 1 ist. Gibt es eine einfache Möglichkeit, dies in Razor zu tun, ähnlich wie ich das & lt; -Div- & gt; Tag mit Knockout.js in einem Browser, wo ich vielleicht:

%Vor%

Im Moment ist die beste Razor-Alternative, die ich habe:

%Vor%     
user18539 15.05.2014, 03:00
quelle

1 Antwort

11

Es gibt viele Möglichkeiten, dies zu tun. Zunächst sollte beachtet werden, dass Ihr Knockout-Code den HTML-Code nicht wirklich aus der Ausgabe entfernt, sondern lediglich seine Anzeige auf ausgeblendet setzt.

Der Rasierklingen-Code, den Sie tatsächlich haben, entfernt den Code aus dem gerenderten HTML, also ist das etwas ganz anderes.

Um Ihre Frage zu beantworten, müssen wir wissen, was Sie erreichen möchten. Wenn Sie die Anzeige nur ausblenden möchten, können Sie einfach Folgendes tun:

%Vor%

Sie könnten es auch mit einer Klasse machen:

%Vor%

Wenn Sie den Code aus der Ausgabe entfernen möchten, dann können Sie einfach tun, was Sie getan haben .. Ich bin sicher, was Sie so anstößig finden ... aber wenn Sie andere Alternativen wollen, könnten Sie Erstellen Sie einen HTML-Helfer, könnten Sie einen Rasierer Helfer verwenden, könnten Sie eine Anzeige oder EditorTemplate verwenden ....

Die Liste ist eigentlich ziemlich lang und ich kratze nur an der Oberfläche ...

    
Erik Funkenbusch 15.05.2014, 03:16
quelle

Tags und Links