Javascript 如何将回发参数从JS传递到VB?
我正在尝试将图像从图像编辑器传递到VB中的函数。我的设置如下所示: JSJavascript 如何将回发参数从JS传递到VB?,javascript,jquery,asp.net,vb.net,Javascript,Jquery,Asp.net,Vb.net,我正在尝试将图像从图像编辑器传递到VB中的函数。我的设置如下所示: JS var canvas = document.getElementById("canvas_minipaint"); var img = canvas.toDataURL("image/jpeg"); __doPostBack('SaveImage', img); ASPX VB Private Sub SaveImage\u单击(发送者作为对象,e作为事件参数)处理SaveImage。单击 调用GetSession(
var canvas = document.getElementById("canvas_minipaint");
var img = canvas.toDataURL("image/jpeg");
__doPostBack('SaveImage', img);
ASPX
VB
Private Sub SaveImage\u单击(发送者作为对象,e作为事件参数)处理SaveImage。单击
调用GetSession()
端接头
现在单击SaveImage按钮时,出现以下错误:
回发或回调参数无效。在配置或页面中使用启用事件验证。出于安全目的,此功能验证回发或回调事件的参数是否源自最初呈现它们的服务器控件。如果数据有效且符合要求,请使用ClientScriptManager.RegisterForEventValidation方法注册回发或回调数据以进行验证
如何为验证器的按钮注册onClick?还是我遗漏了什么?关闭此页面的事件验证。您可以在页面级别通过添加
Page EnableEventValidation="false"
到.aspx页面的顶部。我建议在这种情况下这样做,因为您正在使用JavaScript进行手动回发。对于单个控件,无法将其关闭
编辑:
您可以始终将映像的值存储在隐藏字段中,这样就不需要禁用事件验证。您需要一种在字段中存储图像数据的方法(可能是base64字符串?),但它会起作用。我建议不要禁用EventValidation,以避免恶意用户弄乱表单。您可以将数据存储在隐藏的输入中,也可以覆盖页面事件并对其进行处理
protected override void RaisePostBackEvent(IPostBackEventHandler sourceControl, string eventArgument)
{
if (sourceControl is yourControl)
{
//sanitize data
}
}
没问题,很高兴我能帮上忙。你的编辑让我想起了一个关于臭名昭著的Telerik asp.net控件错误的解决方法。已经发布了如何避免该错误的答案,但仍保留事件验证。编辑:我相信你的答案是最简单的;-)@KyleBrown如果这个或另一个答案有助于您解决问题,请将其标记为“有帮助”,以便未来用户可以在发布新问题之前找到答案。