HTML   发布时间:2022-04-14  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了.net – 在RazorEngine中使用语句(没有来自MVC的HtmlHelper)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在没有MVC-Framework的情况下使用RazorENGIne.
这意味着我没有用于创建模板的 HtmlHelper.

没关系,我不需要任何方法.
但我需要创建自己的方法,如BeginForm.

现在这些是用HtmlHelper.ViewContext.Writer.Write完成的,我没有.
是否有“开箱即用”的方式,或者我必须在这里做一些魔术吗?

解决方法

RazorEngine设计用于派生您自己的类型以用于引擎本身.

首先创建自己的助手:

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;
        }
    }
}

在解析之前设置TemplateserviceConfiguration:

Razor.SetTemplateservice(new Templateservice(
  new TemplateserviceConfiguration()
  {
    BaseTemplateType = typeof(RazorTemplateBase<>)
  };
));

result = RazorENGIne.Razor.Parse(templateText,model);

现在,RazorENGIne在视图中提供了@ Html.Partial()和@ Url.Encode().

大佬总结

以上是大佬教程为你收集整理的.net – 在RazorEngine中使用语句(没有来自MVC的HtmlHelper)全部内容,希望文章能够帮你解决.net – 在RazorEngine中使用语句(没有来自MVC的HtmlHelper)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。