如何使用代码中的其他帮助程序构建Custom Helper

时间:2011-02-16 13:37:45

标签: asp.net-mvc-3 devexpress razor

我正在创建一个自定义助手来自动化我的应用程序中的一些代码。我现在想要如何在我的助手中显示控件。当我返回GetHTML()方法时,页面将像纯文本一样显示HTML。当我使用Render()方法时,控件在体内渲染,乱序。

public static string EntityForm(this HtmlHelper helper, Type TypeModel)
{
    return "My Helper" + DevExpress.Web.Mvc.UI.ExtensionsFactory.Instance.TextBox(settings =>
            {
                settings.Name = att.Nome;
            }).GetHtml()
}

2 个答案:

答案 0 :(得分:1)

使用HtmlString,这样就不会对输出进行编码。

来自视图内的示例

@(new HtmlString("<div>some html</div>"))

更改您的Html帮助程序

尝试将您的方法更改为以下内容:

public static HtmlString EntityForm(this HtmlHelper helper, Type TypeModel)
{
    var html = "My Helper" + DevExpress.Web.Mvc.UI.ExtensionsFactory.Instance.TextBox(settings =>
            {
                settings.Name = att.Nome;
            }).GetHtml();

    return new HtmlString(html);
}

答案 1 :(得分:0)

Razor将撤消写入页面的所有string 您需要更改辅助方法以返回HtmlString,以便Razor不会将其转义。