HTMLHELPERS из MVC2 Compatibiliy с бритвой
-
26-09-2019 - |
Вопрос
Существуют ли существующие HTMLHELPERS с помощью Razor? Если это так, делает бритву что-нибудь о дизайне или использовании HTMLHELPERS?
Спасибо
Решение
Да, существующие помощники отлично работают в порядке с бритвой. Например:
@Html.ActionLink("foo bar", "foo")
Какие изменения бритвы состоит в том, что теперь у вас есть возможность определить встроенные помощники, как это:
@helper FooBar(string foo)
{
<div>Hello @foo</div>
}
И использовать так:
@FooBar("World")
Насколько классика HTML-помощники обеспокоены, бритва ничего не меняется, это просто двигатель View, поэтому вы продолжаете писать свои помощники, как вы всегда делали:
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());
}
}
И использовать в бритве:
@Html.FooBar("some value")
Другие советы
Razor выполняет HTML кодировку по умолчанию.
Так что если какой-либо из ваших HTMLHELPERS MVC2 выделяет разметку, они могут не работать, если они возвращаются String
вместо MvcHtmlString
.