我在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();
}
答案 0 :(得分:2)
目前,如果没有带有ScriptManager的有效Page对象,则无法呈现RadEditor。我们(Telerik)计划在不久的将来添加对“独立”渲染的支持。应该在博客文章中公布,敬请期待。
答案 1 :(得分:1)
问题是标签是服务器端控件。当您将硬编码放入页面时,服务器端标记将转换为html。当您使用htmlhelper时,您输出的是html,并且它不会被处理为服务器端标记。
如果你想做一些动态的事情,你应该使用UserControl(.ascx文件),然后使用Html.RenderPartial方法。