2

我在我们的 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();
    }
4

2 回答 2

2

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

于 2009-04-14T19:08:49.137 回答
1

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

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

于 2009-04-09T20:58:13.203 回答