Frage

Will bestehende HtmlHelpers arbeitet mit Razor? Wenn ja, tut Razor Änderung etwas über die Gestaltung und Nutzung von HtmlHelpers?

thx

War es hilfreich?

Lösung

Ja, bestehende Helfer arbeiten völlig in Ordnung mit Razor. Zum Beispiel:

@Html.ActionLink("foo bar", "foo")

Was Razor ändert ist, dass jetzt haben Sie die Möglichkeit, wie diese Inline-Helfer zu definieren:

@helper FooBar(string foo)
{
    <div>Hello @foo</div>
}

Und Verwendung wie folgt aus:

@FooBar("World")

Was klassische HTML-Helfer betroffen sind, Razor ändert sich nichts, es ist nur eine Ansicht, Motor, so dass Sie auch weiterhin Ihre Helfer schreiben, wie Sie schon immer tat:

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 Verwendung in Razor:

@Html.FooBar("some value")

Andere Tipps

Razor führt HTML-Codierung standardmäßig aktiviert.

Also, wenn einer Ihrer MVC2 HtmlHelpers emit Markup, sie könnten nicht funktionieren, wenn sie zurückkommen String statt MvcHtmlString.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top