如何将回发参数从JS传递给VB?

时间:2018-01-16 16:46:38

标签: javascript jquery asp.net vb.net

我试图将图像从图像编辑器传递到VB中的函数。我把它设置如下:

JS

var canvas = document.getElementById("canvas_minipaint");
var img = canvas.toDataURL("image/jpeg");
__doPostBack('SaveImage', img);

ASPX

<asp:LinkButton ID="SaveImage" runat="server" Visible="true"></asp:LinkButton>

VB

Private Sub SaveImage_Click(sender As Object, e As EventArgs) Handles SaveImage.Click
    Call GetSession()
End Sub

当我立即点击SaveImage按钮时,我收到以下错误:

无效的回发或回调参数。使用配置或&lt;%@ Page EnableEventValidation =“true”%&gt;启用事件验证在一个页面中。出于安全考虑,此功能可验证回发或回调事件的参数是否来自最初呈现它们的服务器控件。如果数据有效且符合预期,请使用ClientScriptManager.RegisterForEventValidation方法注册回发或回调数据以进行验证。

如何为验证器注册onClick按钮?或者我错过了其他什么?

2 个答案:

答案 0 :(得分:1)

关闭此页面的事件验证。您可以通过添加

在页面级别将其关闭
Page EnableEventValidation="false"

到.aspx页面的顶部。我建议在这种情况下这样做,因为你正在使用JavaScript进行手动回发。单个控件无法将其关闭。

修改

您始终可以将图像的值存储在隐藏字段中,这样就无需禁用事件验证。你需要一种方法来存储图像数据(base64字符串可能?),但它可以工作。

答案 1 :(得分:1)

我建议不要禁用EventValidation以避免恶意用户弄乱表单。您可以将数据存储在隐藏的输入中,或覆盖页面事件并处理它。

LoginActivity extends AppCompatActivity implements GoogleApiClient.OnConnectionFailedListener{
....
 }