Asp.net mvc 3 如何使用代码中的其他帮助程序构建自定义帮助程序

Asp.net mvc 3 如何使用代码中的其他帮助程序构建自定义帮助程序,asp.net-mvc-3,devexpress,razor,Asp.net Mvc 3,Devexpress,Razor,我正在创建一个自定义帮助程序,以自动化应用程序中的一些代码。我现在想知道如何在我的助手中显示控件。当我返回GetHTML()方法时,页面会像纯文本一样显示HTML。当我使用Render()方法时,控件在主体中呈现为rendere,无序 public static string EntityForm(this HtmlHelper helper, Type TypeModel) { return "My Helper" + DevExpress.Web.Mvc.UI.ExtensionsF

我正在创建一个自定义帮助程序,以自动化应用程序中的一些代码。我现在想知道如何在我的助手中显示控件。当我返回GetHTML()方法时,页面会像纯文本一样显示HTML。当我使用Render()方法时,控件在主体中呈现为rendere,无序

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()
}

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

视图内部的示例

@(新的html字符串(“一些html”))

更改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);
}

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

视图内部的示例

@(新的html字符串(“一些html”))

更改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);
}

Razor将转义写入页面的所有
字符串。

您需要更改助手方法以返回
HtmlString
,这样Razor就不会逃逸它。

Razor将逃逸写入页面的所有
字符串。

您需要更改助手方法以返回
HtmlString
,这样Razor就不会逃脱它。

这不是他想要的。@SLaks,他想显示html而不编码它,
HtmlString
是正确的方法。第二行只是一个例子。除了它应该放在括号里,而不是大括号里。我通常不会在答案中涉及代码。(虽然也许我应该)这不是他想要的。@SLaks,他想显示html而不编码它,
HtmlString
是正确的方法。第二行只是一个例子。除了它应该放在括号里,而不是大括号里。我通常不会在答案中涉及代码。(尽管也许我应该)