2009-04-09 47 views
2

我在ASP.NET MVC(RTM)項目中使用Telerik RadEditor(Q1 2009 SP1)。編輯器在使用靜態ID作爲頁面上的硬編碼對象呈現時效果很好。但是,當用HtmlHelper進行擴展來通過傳入一個Id來進行動態創建時,它似乎將html全部標記爲小寫。 HtmlHelper對象是不是偶然地混淆了這個問題?這些屬性看起來分別是大寫和小寫,但這看起來很奇怪。這是我的代碼....提前致謝!通過HtmlHelper創建動態RadEditor

   <% 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

螢火使得它如下....注意Telerik的如何:radeditor標籤是所有小寫相對於輔助 dodegaard 2009-04-09 17:34:57

回答

2

目前,如果不具有ScriptManager的有效頁面對象,則無法渲染RadEditor。我們(即Telerik)計劃在不久的將來增加對「獨立」渲染的支持。應該在博客文章中公佈,敬請關注。

+0

謝謝。我確實使用了一個iFrame解決方案,我將在這裏和telerik的網站上發佈供其他人使用的iFrame。我認爲htmlHelpers將幫助所有人在MVC中使用這些令人敬畏的控件。 – dodegaard 2009-04-15 21:30:28

1

的問題是標籤是一個服務器端控制。當您將其硬編碼放入您的頁面時,服務器端標記會被轉換爲html。當你使用htmlhelper時,你輸出的是html,它不會作爲服務器端標記處理。

如果你想做一些動態的事情,你應該使用UserControl(.ascx文件),然後使用Html.RenderPartial方法。