기존 HTMLHelper는 Razor와 함께 사용할 수 있습니까? 그렇다면 Razor는 HTMLHelpers의 디자인이나 사용법에 관해 무엇인가를 변경합니까?MVC2의 HTMLHelpers와 Razor의 호환성
thx
기존 HTMLHelper는 Razor와 함께 사용할 수 있습니까? 그렇다면 Razor는 HTMLHelpers의 디자인이나 사용법에 관해 무엇인가를 변경합니까?MVC2의 HTMLHelpers와 Razor의 호환성
thx
예, 기존 헬퍼는 면도기로 완벽하게 작동합니다. 예를 들어 :
@helper FooBar(string foo)
{
<div>Hello @foo</div>
}
을 그리고 다음과 같이 사용합니다 : 지금까지 로
@FooBar("World")
을 면도기는 어떤 변화
@Html.ActionLink("foo bar", "foo")
이제 다음과 같이 인라인 도우미를 정의 할 수있을 것입니다 classic HTML 헬퍼가 걱정된다면 면도기는 아무 것도 바뀌지 않습니다. 단지 뷰 엔진 일 뿐이므로 늘 그렇듯이 도우미를 계속 작성하십시오 :
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")
면도기가 기본적으로 HTML 인코딩을 수행한다.
MVC2 HtmlHelpers가 마크 업을 방출하는 경우 MvcHtmlString
대신 String
을 반환하면 작동하지 않을 수 있습니다.