Htmlhelpers da MVC2 Compatibiliy com Razor
-
26-09-2019 - |
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
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
.