ASP.NET MVC Razor Rendern Sie SelectList ohne Codierung

8

Wie kann ich meine Auswahlliste ohne HTML-Codierung rendern

? %Vor%

gerendert

%Vor%

Wie bekomme ich es stattdessen rendern

%Vor%     
Joakim 15.09.2011, 10:27
quelle

3 Antworten

12

Der einfachste Weg, dies in C # zu erreichen, ist die Verwendung von \xA0 anstelle von   , damit Sie den zusätzlichen Code vermeiden können.

Kredit geht auf diese Antwort: Wie Räume in DropDownList beibehalten - ASP.net MVC Razor Ansichten

    
BenC3 11.10.2012, 01:18
quelle
3

Leider ist dieses Verhalten nicht integriert. Die Methode Html.DropDownList (und die meisten anderen Methoden HtmlHelper ) entkoppelt immer den gesamten Eingabetext.

Problemumgehung

Es gibt jedoch Problemumgehungen. Sie können beispielsweise eine eigene HtmlHelper-Methode erstellen, die nicht-gescannten HTML-Code zulässt.

Aber wenn Ihre Bedürfnisse so einfach sind wie Ihr Beispiel, hier ist ein einfacher Workaround:
Verwenden Sie einen Platzhalter wie | , und ersetzen Sie ihn dann durch   , wie folgt:

%Vor%

Beachten Sie, dass Sie auch eine einfache Erweiterungsmethode erstellen können, um den benötigten Code wirklich zu reduzieren:

%Vor%

Dies vereinfacht Ihren HTML-Code zu:

%Vor%     
Scott Rippey 27.12.2011 23:08
quelle
0

Es liegt daran, dass Razor immer entity-encoded html ausgibt. Sie sollten in der Lage sein zu callen (VS aktualisiert sich gerade auf meinem Rechner, so dass ich keinen schnellen Test machen kann) Html.Raw() in diesem Zusammenhang, so:

%Vor%

BEARBEITEN: Das funktioniert nicht.

    
Greg Bair 27.12.2011 21:21
quelle

Tags und Links