Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 通过HtmlHelper创建动态RadEditor_Asp.net Mvc_Telerik - Fatal编程技术网

Asp.net mvc 通过HtmlHelper创建动态RadEditor

Asp.net mvc 通过HtmlHelper创建动态RadEditor,asp.net-mvc,telerik,Asp.net Mvc,Telerik,我在ASP.NET MVC(RTM)项目中使用Telerik RadEditor(2009年第1季度SP1)。当编辑器在带有静态id的页面上呈现为硬编码对象时,效果非常好。但是当使用HtmlHelper进行扩展以通过传入id进行动态创建时,它似乎将html呈现为标记的所有小写。HtmlHelper对象是不是天生偶然地弄乱了这一点?属性看起来分别是大写和小写,但这似乎很奇怪。这是我的代码…提前谢谢 <% if (placeholder.Type.ToLower(

我在ASP.NET MVC(RTM)项目中使用Telerik RadEditor(2009年第1季度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();
    }
公共静态字符串RadEditor(此HtmlHelper html,字符串Id)
{
var sb=新的StringBuilder();
某人加上(“”);
某人加上(“”);
某人加上(“”);
某人加上(“”);
使某人返回字符串();
}

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


如果要执行动态操作,应使用UserControl(.ascx文件),然后使用Html.RenderPartial方法。

目前,如果没有带有ScriptManager的有效页面对象,则无法呈现RadEditor。我们(即Telerik)计划在不久的将来增加对“独立”渲染的支持。应该在博客文章中公布,请继续关注。

firebug将其呈现如下……请注意,telerik:radeditor标签与helper Thank标签相比都是小写的。我确实实现了一个使用iFrame的解决方案,我将在这里和telerik的网站上发布,供其他人使用。我认为htmlHelpers将帮助所有人在MVC中使用这些很棒的控件。