Domanda

si HtmlHelpers esistenti funzionano con il rasoio? Se è così, fa Razor cambiamento nulla sia la progettazione o l'utilizzo di HtmlHelpers?

thx

È stato utile?

Soluzione

Sì, aiutanti esistenti funzionano perfettamente bene con il rasoio. Ad esempio:

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

Che Razor cambia è che ora avete la possibilità di definire aiutanti in linea in questo modo:

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

E l'uso in questo modo:

@FooBar("World")

Per quanto riguarda la classica helper HTML sono interessati, Razor cambia nulla, è solo un motore di visualizzazione in modo da continuare a scrivere i vostri aiutanti come hai sempre fatto:

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

E l'uso in Razor:

@Html.FooBar("some value")

Altri suggerimenti

Razor esegue HTML codifica per impostazione predefinita.

Quindi, se uno dei tuoi MVC2 HtmlHelpers emettono markup, essi potrebbero non funzionare se stanno tornando String invece di MvcHtmlString.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top