我正在使用Razor Engine從數據庫動態編譯我的剃鬚刀視圖。現在即時通訊使用剃刀引擎3.7.3。我看到很少有關於如何閱讀html助手並編譯它的文章,但它是針對舊版本的剃鬚刀引擎。解析html helper
我已閱讀約ITemplateServiceConfiguration
,但我真的不明白它是如何工作。
我的問題是,我怎麼能runcompile()razorengine(v3.7.3)成功地與@Html(HTML幫助),@url(URL助手),並@部分(如@section腳本,@section特色)在我的數據庫的HTML內容?
我到目前爲止所做的事情。我試圖實現我從另一篇文章中獲得的代碼。該代碼旨在用於舊版本的剃鬚刀引擎。他建議,我們創造我們自己的助手:
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);
}
}
然後,他建議創建自己的模板:
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;
}
}
}
和解析之前,我們需要設置我們的配置:
Razor.SetTemplateService(new TemplateService(new TemplateServiceConfiguration()
{
BaseTemplateType = typeof(RazorTemplateBase<>)
};
));
result = RazorEngine.Razor.Parse(templateText, model);
RazorUrlHelper沒有問題,但RazorHtmlHelper無法正確讀取這些代碼,因爲它已被棄用:
個ITemplate template = RazorEngine.Razor.Resolve(viewName);
ExecuteContext ec = new ExecuteContext();
RawString result = new RawString(template.Run(ec));
以上代碼是從this post
你能告訴你到目前爲止你做了什麼嗎? 因此,我們可以幫助你更好 –
好吧,我編輯它,請審查。 –
[RazorEngine WebApiTemplateBase @ Url.Content()]可能的重複(http://stackoverflow.com/questions/32461041/razorengine-webapitemplatebase-url-content) – matthid