相关疑难解决方法(0)

像Helper.BeginForm()一样创建MVC3 Razor Helper

我想创建一个帮助器,我可以像Helper.BeginForm()那样在括号之间添加内容.我不介意为我的助手创建一个Begin,End,但这样做非常简单易行.

基本上我想要做的是在这些标签之间包装内容,以便它们呈现已经格式化

就像是

@using Html.Section("full", "The Title")
{
This is the content for this section
<p>More content</p>
@Html.TextFor("text","label")
etc etc etc
}
Run Code Online (Sandbox Code Playgroud)

参数"full"是该div的css id,"title"是该部分的标题.

除了做我想做的事情之外,还有更好的方法来实现这个目标吗?

提前感谢您的帮助.

html-helper razor asp.net-mvc-3

22
推荐指数
1
解决办法
5176
查看次数

解析html助手

我正在使用Razor Engine从数据库动态编译我的剃刀视图.现在我使用Razor Engine 3.7.3.我看到很少有关于如何阅读html帮助并编译它的帖子,但它是旧版本的razor引擎.

我已经读过了ITemplateServiceConfiguration,但我真的不明白它是如何工作的.

我的问题是,如何在html内容中使用@Html(Html帮助程序),@ Url(Url Helper)和@section(如@Section脚本,@Section精选)成功运行compile()razorengine(v3.7.3)我的数据库?

我到目前为止所做的事情.我试图实现我从另一篇文章中获得的代码.该代码适用于较旧版本的剃刀引擎.他建议我们创建自己的帮助类:

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

然后他建议创建我们自己的模板:

public class RazorTemplateBase<T> : TemplateBase<T>
{
    private RazorUrlHelper _urlHelper = new RazorUrlHelper();

    private RazorHtmlHelper _htmlHelper = new RazorHtmlHelper();

    public RazorUrlHelper Url
    {
        get
        { …
Run Code Online (Sandbox Code Playgroud)

c# razorengine

8
推荐指数
1
解决办法
1065
查看次数

标签 统计

asp.net-mvc-3 ×1

c# ×1

html-helper ×1

razor ×1

razorengine ×1