2010-12-21 43 views
3

我在編輯模式中使用TinyMCE中的DetailView。詳細信息查看和集成TinyMCE <%@ Page validateRequest =「false」%>

我想知道是否有可以防止請求驗證觸發錯誤

,而無需使用<%@ Page validateRequest="false" %>爲我的網頁的解決方案。

我發現目前的唯一方法是使用選項編碼由TinyMCE的使用文本框:「XML」

tinyMCE.init({ 
     encoding: "xml", 

這樣請求驗證不會引發錯誤,但在時間來讀取數據在文本框中的結果是編碼。 我也嘗試使用此代碼,但並不如預期

myTextBox.Text = HttpUtility.HtmlDecode(myTextBox.Text) 

結果上pageLoad的解碼文本框的內容,所以我可以想像它只是編碼的文本。

任何想法?由於

UPDATE


我找到了解決我的問題。 我_DataBound事件添加DetailsView控件的代碼

 TextBox myContentAuthor = (TextBox)uxAuthorListDetailsView.FindControl("uxContentAuthorInput"); 
     myContentAuthor.Text = HttpUtility.HtmlDecode(myContentAuthor.Text); 

所以在數據綁定事件,(應在崗位甚至工作後)的內容將被decodene的文本框TinyMCE的。

這裏應該是如何工作的: -

01使用函數編碼在文本框中插入TinyMCE的ESCAPE數據: 「XML」,

02 - 數據已被存儲爲轉義

03 - 讀取數據並將其內容添加到文本框中,其中將TinyMCE用於DetailView和HttpUtility.HtmlDecode的DATABOUND EVENT中(因此它將看起來已解碼)

04 - 您可以在編輯模式下修改文本框中的內容。在回帖後TinyMCE會再次使用編碼編碼:「xml」等等

希望大家可以幫助其他人。

但請給我你對這個解決方案的評論謝謝! Mybe你拿出更優雅的解決方案! :-)

+0

在這裏看到我的答案http://stackoverflow.com/a/34100978/1201322 – Ravimallya 2015-12-05 03:40:46

回答

0

我個人會簡單地關閉此頁面的請求驗證。

除非有你跨站點請求等等預見的問題,就沒有必要根據其承擔的「保護」

+0

嗨,感謝您的評論。但是我需要在編寫數據庫時編碼所有數據,並根據請求對其進行解碼。所以在我的情況下,我必須在TextBox中進行解碼。此頁面上的請求驗證關閉意味着在Web.Config中更改我們的應用程序和應用程序的設置,這可能會造成一些安全風險。謝謝 – GibboK 2011-01-06 09:31:22

0

這個住所,也可以通過網頁提交之前,從數據刪除HTML標記來完成。

+0

請發表一個例子,如果你可以感謝 – GibboK 2011-01-20 09:05:05

0

問題是:
當PostBack到達時,TinyMCE會重新編碼textarea的內容。 要解決此問題,解決的辦法是更容易比解釋...

Page_Load,如果它是一個回傳必須測試 - >您更換myTextBox.Text通過HttpUtility.HtmlDecode(myTextBox.Text)

我嘗試,它的工作...