Ich habe einige Zweifel, wie MvcHtmlString-Instanzen aufgrund dieser Informationen in MSDN verkettet werden können :
MvcHtmlString-Klasse Stellt eine HTML-codierte Zeichenfolge dar, die nicht erneut codiert werden sollte
Riskiere ich, dass Zeichenfolgen bei Verwendung von Code wie diesem zweimal HTML-codiert werden:
var label = Html.LabelFor(model => model.Email);
var textbox = Html.TextBoxFor(model => model.Email);
var validation = Html.ValidationMessageFor(model => model.Email);
var result = MvcHtmlString.Create(
label.ToString() + textbox.ToString() + validation.ToString());
(Hinweis: Dies soll in eine HtmlHelper-Erweiterungsmethode gehen, um die Codeduplizierung in Ansichten zu reduzieren.)
IHtmlString
?Ich habe mich für diesen Ansatz entschieden:
Es ist nur eine Dienstprogrammmethode, die ich in den Klassen mit Erweiterungsmethoden für HtmlHelper verwende.
quelle
Ich weiß, dass dies super alt ist, aber eine andere Möglichkeit (die ich eleganter finde) besteht darin, eine Überladung der String-Methode Concat zu verwenden, die Metadatendefinition ist
dass ToStrings im Grunde jedes der übergebenen Objekte und dann die Ergebnisse verkettet und die verkettete Zeichenfolge zurückgibt.
Das Endergebnis wäre also:
quelle