我不知道是否有人知道的方式,讓類似「< <」提交,無需設置validateRequest =假允許「<<」提交,無需禁用「validaterequest」
我有克里奧爾語語法分析器,以及推薦的插件/宏語法是:
<<macro-name argo0=foo arg1=bar argN=qux>>
我不知道是否有人知道的方式,讓類似「< <」提交,無需設置validateRequest =假允許「<<」提交,無需禁用「validaterequest」
我有克里奧爾語語法分析器,以及推薦的插件/宏語法是:
<<macro-name argo0=foo arg1=bar argN=qux>>
我寫了一個'encodeMyHtml'JavaScript函數,當點擊HTML表單的提交按鈕時,在OnClick事件上調用。該函數在傳遞給服務器之前,將用戶指定的字段的HTML輸入編碼爲無害字符串。當我在服務器上收到輸入信號時,我只需解碼並繼續前進。
ValidateRequest很開心,我們的用戶很開心,我們的同事很開心,我們很開心。
我在我的用戶控件的OnPageLoad方法中添加了我的'encodeMyHtml'JavaScript函數。通過這種方式,無論頁面上有多少個控件,我都可以確保只將JavaScript添加到父頁面一次。
在我的控制的我的onPageLoad稱之爲:
private void addEditorJavaScript()
{
// create our HTML encoder javascript function
// this way it shows up once per page that the control is on
string scr = @"<script type='text/javascript'>function encodeMyHtml(name){
var content = document.getElementById(name).value
content = content.replace(/</g,'<');
content = content.replace(/>/g,'>');
document.getElementById(name).value = content;
}</script>";
// add the javascript into the Page
ClientScriptManager cm = Page.ClientScript;
cm.RegisterClientScriptBlock(this.GetType(), "GlobalJavascript", scr);
}
在我的控制的ASPX我使用一個gridview。我在span標記中包裝了gridview的update asp:LinkButton,並在該標記中放置了我的OnClickEvent。
<span onclick="encodeMyHtml('<%# UniqueID.Replace("$", "_") %>_FormViewContentManager_ContentTextBox')">
<asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True" CommandName="Update" Text="[Publish]" />
</span><span onclick="encodeMyHtml('
當我在服務器端的輸入我只需調用幾個輸入字符串替換方法的HTML進行解碼,和我做。
你可以做一個javascript正則表達式替換爲「< \ S」在特定領域上的形式提交。但是,不支持JavaScript的瀏覽器會失敗。
您可以使用JavaScript客戶端編碼「< <」:
<script language="javascript">
function encodeString(str) {
return str.replace(/</gi, '<').replace(/>/gi, '>');
}
</script>
,然後在服務器使用Server.HtmlDecode字符串恢復到原來的形態。
提交什麼?例如,您應該能夠在文本框中輸入任何想要的值。 – recursive 2011-02-28 04:26:35