Urządzenie RazorEngine zostało zaprojektowane z wykorzystaniem własnych typów do wykorzystania w samym silniku.
Pierwszy tworzyć własne Pomocnicy:
public class RazorHtmlHelper
{
public IEncodedString Partial(string viewName)
{
ITemplate template = RazorEngine.Razor.Resolve(viewName);
ExecuteContext ec = new ExecuteContext();
RawString result = new RawString(template.Run(ec));
return result;
}
}
public class RazorUrlHelper
{
public string Encode(string url)
{
return System.Uri.EscapeUriString(url);
}
}
Następny stworzyć własny szablon:
public class RazorTemplateBase<T> : TemplateBase<T>
{
private RazorUrlHelper _urlHelper = new RazorUrlHelper();
private RazorHtmlHelper _htmlHelper = new RazorHtmlHelper();
public RazorUrlHelper Url
{
get
{
return this._urlHelper;
}
}
public RazorHtmlHelper Html
{
get
{
return this._htmlHelper;
}
}
}
Przed analizowaniem ustawić TemplateServiceConfiguration:
Razor.SetTemplateService(new TemplateService(
new TemplateServiceConfiguration()
{
BaseTemplateType = typeof(RazorTemplateBase<>)
};
));
result = RazorEngine.Razor.Parse(templateText, model);
Teraz RazorEngine ma @Html.Partial()
i @Url.Encode()
dostępne w widokach.
Używasz [Bocznej strony strony] (http://www.asp.net/web-pages/overview/getting-started/aspnet-web-pages- (razor) -faq) lub tylko [RazorEngine] (http://razorengine.codeplex.com/)? –
Używam czystego RazorEngine z repozytorium github (więc drugi link) – Richard