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
Leider ist dieses Verhalten nicht integriert. Die Methode Html.DropDownList
(und die meisten anderen Methoden HtmlHelper
) entkoppelt immer den gesamten Eingabetext.
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:
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% 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:
BEARBEITEN: Das funktioniert nicht.
Tags und Links asp.net-mvc-3