现有的HTMLHelpers是否可以与Razor配合使用?如果是这样,Razor是否会对HTMLHelpers的设计或使用做出任何改变?
THX
答案 0 :(得分:3)
是的,现有的助手与Razor完美搭配。例如:
@Html.ActionLink("foo bar", "foo")
Razor的变化是,现在您可以像这样定义内联助手:
@helper FooBar(string foo)
{
<div>Hello @foo</div>
}
并像这样使用:
@FooBar("World")
就经典 HTML帮助者而言,Razor什么都没改变,它只是一个视图引擎,所以你可以像往常那样继续编写助手:
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());
}
}
在Razor中使用:
@Html.FooBar("some value")
答案 1 :(得分:0)
Razor默认执行HTML编码。
因此,如果您的任何MVC2 HtmlHelpers发出标记,如果他们返回String
而不是MvcHtmlString
,它们可能无效。