2012-08-23 78 views
8

我在用戶控件上嵌入了所見即所得編輯器,該編輯器顯然會進入網頁。當我提交頁面時,我得到「從客戶端檢測到潛在危險的Request.Form值」異常。在以前的.NET版本中,我只關閉頁面的ValidateRequest。ASP.NET 4.5從客戶端檢測到有潛在危險的Request.Form值

但是,在.NET 4.5中,它似乎具有ValidateRequestMode屬性。當我將其設置爲禁用時,我仍然繼續出現錯誤。有沒有關於.NET 4.5錯誤,所以沒有人知道解決方案?

在此先感謝。

+2

作爲一種替代方案,您可以在提交給服務器之前使用javascript對wyswing編輯器的內容進行編碼。這樣你就不需要禁用驗證。 – m0s

+0

我正在使用最新的TinyMCE編輯器(版本3.5.6),它有一個內置選項用於對我已經使用的內容進行編碼。所以這應該編碼它。但我仍然收到錯誤。 – Ricketts

回答

13

我發現了這個問題。它必須與TinyMCE編輯器在編碼之前需要對內容進行編碼,然後嘗試讀取和發佈它。解決方案是通過JavaScript編碼,如m0s所示。 TinyMCE有可以設置

encoding: "xml" 

,我曾設置了內置的選項,但它不編碼撇號,我不得不在內容。因此,爲了解決這個問題,你必須把它添加到TinyMCE的初始化函數在頁面上:

的TinyMCE 3.x中

setup: function (ed) { 
    ed.onSaveContent.add(function (i, o) { 
     o.content = o.content.replace(/&#39/g, "&apos"); 
    }); 
} 

TinyMCE的4.x的

setup: function(editor) { 
    editor.on("SaveContent", function(i) { 
     i.content = i.content.replace(/&#39/g, "&apos"); 
    }); 
} 

我找到了解決方案:http://blog.tentaclesoftware.com/archive/2012/05/21/asp-net-4-0-tinymce-and-ldquoa-potentially-dangerous-request.aspx

希望能幫助別人!

+0

你不能像這樣加載文本。 TinyMCE不會處理它們。 – Akbari

0

我通過在內容屬性public virtual string content{ get; set; }之前添加[AllowHtml]來解決此問題。

相關問題