当用户在模式弹出窗口中的asp.net textbox控件中输入<>符号时,将在回发时引发运行时错误。我知道过去对这类问题的许多答案是将ValidateRequest=设置为“false”,但是我不想这样设置,因为我担心禁用可能会阻止其他攻击的安全功能。
用户希望能够复制和粘贴有时包含<>标签的电子邮件文本,但是他们并不介意标签是否被删除,他们只希望在复制和粘贴表单时自动将其删除,然后提交表单以供服务器处理。
有没有人能举个例子来解决这类问题?如果不能像用户喜欢的那样做,还有什么替代的解决方案呢?谢谢。
发布于 2015-12-02 00:28:03
所以我遇到的一个障碍是我想要触发JS的模式弹出按钮,它链接到一个ajax确认按钮扩展器,不让它触发。
我必须使用emca脚本修改确认按钮扩展器的behavior属性,并在该脚本中包含JS函数。最后,我做了一个检查,以确保扩展器不是空的,这取决于我可能实例化或不实例化控件的情况。
以下是我的最终解决方案:
在aspx页面开头的Content标签之后,我放入了我的脚本:
<script type="text/ecmascript">
Sys.Application.add_load(wireEvents);
function wireEvents() {
var behavior = $find("confirmBehavior");
if (behavior !== null)
{ behavior.add_showing(formatText); }
}
function formatText() {
var newValue = document.getElementById('<%=txtStatusComment.ClientID%>').value.replace(/[<>]+/g, "");
document.getElementById('<%=txtStatusComment.ClientID%>').value = newValue;
}
</script>然后,对于按钮,我执行了以下操作:
<asp:Button ID="btnSaveStatus" runat="server" CssClass="button" OnClick="btnSaveStatus_Click" Text="Save" OnClientClick ="formatText();" />
<asp:Button ID="btnCancelStatus" runat="server" CssClass="button" OnClick="btnCancelStatus_Click" Text="Cancel" OnClientClick ="formatText();" />
<cc1:ConfirmButtonExtender ID="btnSaveStatus_ConfirmButtonExtender" BehaviorID="confirmBehavior" runat="server" DisplayModalPopupID="modalPopupExtender3" Enabled="true" TargetControlID="btnSaveStatus">
</cc1:ConfirmButtonExtender>希望这篇文章能帮助任何有同样问题的人!
https://stackoverflow.com/questions/34004030
复制相似问题