Question

Will HTMLHelpers existants fonctionnent avec Razor? Si oui, quoi que ce soit le changement Razor au sujet de la conception ou l'utilisation de HTMLHelpers?

thx

Était-ce utile?

La solution

Oui, les aides existantes fonctionnent parfaitement bien avec rasoir. Par exemple:

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

Quels changements Razor est que maintenant vous avez la possibilité de définir des aides inline comme ceci:

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

Et l'utilisation comme ceci:

@FooBar("World")

En ce qui concerne classique Aides HTML sont concernés, Razor ne change rien, il est juste un moteur de vue afin que vous continuez à écrire vos aides que vous avez toujours fait:

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());
    }
}

et l'utilisation dans Razor:

@Html.FooBar("some value")

Autres conseils

Razor HTML effectue l'encodage par défaut.

Donc, si l'un de vos MVC2 HtmlHelpers émettent un balisage, ils peuvent ne pas fonctionner si elles reviennent String au lieu de MvcHtmlString.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top