【问题标题】:Dynamic RadEditor Creation through HtmlHelper通过 HtmlHelper 创建动态 RadEditor
【发布时间】:2009-04-09 17:33:38
【问题描述】:

我在我们的 ASP.NET MVC (RTM) 项目中使用 Telerik RadEditor (Q1 2009 SP1)。编辑器在呈现为具有静态 ID 的页面上的硬编码对象时效果很好。但是,当使用 HtmlHelper 扩展以通过传入 Id 进行动态创建时,它似乎将 html 呈现为标记的全部小写。 HtmlHelper 对象是否天生就与此混淆?属性分别看起来大写和小写,但这看起来很奇怪。这是我的代码....提前致谢!

               <% if (placeholder.Type.ToLower() == "richtext") { %>
                    <%= Html.RadEditor("placeholder_" + placeholder.Name) %>
                <% } else { %>
                    <%= Html.TextBox("placeholder_" + placeholder.Name, null, new { @class = placeholder.Type }) %>
                <% } %>

助手看起来像这样......

   public static string RadEditor(this HtmlHelper html, string Id)
    {
        var sb = new StringBuilder();

        sb.Append("<telerik:RadEditor ID='" + Id + "' Runat='server' DialogHandlerUrl='~/Telerik.Web.UI.DialogHandler.axd'>");
        sb.Append("<Content>");
        sb.Append("</Content>");
        sb.Append("</telerik:RadEditor>");

        return sb.ToString();
    }

【问题讨论】:

  • firebug 将其呈现如下......请注意,telerik:radeditor 标记与助手

标签: asp.net-mvc telerik


【解决方案1】:

目前,如果没有带有 ScriptManager 的有效 Page 对象,您将无法渲染 RadEditor。我们(即 Telerik)计划在不久的将来添加对“独立”渲染的支持。应在博文中公布,敬请期待。

【讨论】:

  • 谢谢。我确实使用 iFrame 实现了一种解决方法,我将在此处和 Telerik 的网站上发布以供其他人使用。我认为 htmlHelpers 将帮助所有人在 MVC 中使用那些很棒的控件。
【解决方案2】:

问题是标签是服务器端控件。当您将其硬编码到您的页面中时,服务器端标记将被转换为 html。当您使用 htmlhelper 时,您正在输出 html,它不会被作为服务器端标记处理。

如果你想做一些动态的事情,你应该使用 UserControl(.ascx 文件),然后使用 Html.RenderPartial 方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-29
    相关资源
    最近更新 更多