Werden bestehende HTMLHelpers mit Razor arbeiten? Wenn ja, ändert Razor etwas am Design oder der Verwendung von HTMLHelpers?HTMLHelpers von MVC2 kompatibilität mit Razor
thx
Werden bestehende HTMLHelpers mit Razor arbeiten? Wenn ja, ändert Razor etwas am Design oder der Verwendung von HTMLHelpers?HTMLHelpers von MVC2 kompatibilität mit Razor
thx
Ja, vorhandene Helfer funktionieren mit Razor einwandfrei. Zum Beispiel:
@Html.ActionLink("foo bar", "foo")
Was Razor ändert ist, dass jetzt die Möglichkeit, Inline-Helfer wie folgt zu definieren:
@helper FooBar(string foo)
{
<div>Hello @foo</div>
}
Und wie diese:
@FooBar("World")
Soweit classic HTML-Helfer sind betroffen, Razor ändert nichts, es ist nur eine View-Engine, also schreiben Sie weiterhin Ihre Helfer, wie Sie es immer getan haben:
public static class HtmlExtensions
{
public static MvcHtmlString FooBar(this HtmlHelper htmlHelper, string value)
{
var builder = new TagBuilder("div");
div.SetInnerText(value);
return MvcHtmlString.Create(div.ToString());
}
}
Und in Razor verwenden:
@Html.FooBar("some value")
Razor führt HTML-Codierung standardmäßig.
Wenn also einige Ihrer MVC2 HtmlHelpers Markup ausgeben, funktionieren sie möglicherweise nicht, wenn sie String
anstelle von MvcHtmlString
zurückgeben.