HTML Helpers de compatibilité avec MVC2 rasoir
-
26-09-2019 - |
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
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
.