Pergunta

Os htmlhelpers existentes funcionarão com a Razor? Em caso afirmativo, a Razor muda alguma coisa sobre o design ou o uso de htmlhelpers?

THX

Foi útil?

Solução

Sim, os ajudantes existentes funcionam perfeitamente bem com a navalha. Por exemplo:

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

O que a Razor muda é que agora você tem a possibilidade de definir ajudantes embutidos como este:

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

E use assim:

@FooBar("World")

Tão longe quanto clássico Os ajudantes de HTML estão preocupados, não muda nada, é apenas um mecanismo de visualização para que você continue escrevendo seus ajudantes como sempre fez:

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 use em Razor:

@Html.FooBar("some value")

Outras dicas

Razor executa a codificação HTML por padrão.

Portanto, se algum dos seus htmlHelpers MVC2 emitir uma marcação, eles podem não funcionar se estiverem retornando String ao invés de MvcHtmlString.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top