【问题标题】:Running script before form submittal, ASP.NET表单提交前运行脚本,ASP.NET
【发布时间】:2009-07-15 06:13:05
【问题描述】:

我有一个带有 cs 脚本文件的 ASP.NET 页面,用于接收数据,然后将其发布到另一个站点。

在网站上,我使用了一个常规的 HTML 表单,其中包含 asp:TextBox 和 asp:HiddenField 值来收集/保存数据。我遇到的问题是,它上面的一些关键数据必须经过散列和加盐,然后才能发布到不同的站点。

我有一个方法可以做到这一点,它工作正常,但它附加到提交按钮的 OnClick 属性,它是一个 asp:Button 当前设置了 postbackurl。这显然意味着当它进入我不想要的新页面时会被跳过。

我对 Web 开发还很陌生,所以有没有办法在提交页面之前运行一个方法,或者我是否必须在每次更改会影响哈希的字段时运行该方法?

【问题讨论】:

    标签: asp.net html form-submit


    【解决方案1】:

    如果您的哈希方法是用 javascript 编写的,并且您在按钮的 onclick 客户端事件中调用它。它应该在您的表单发布之前运行。使用表单的 onsubmit 事件可能是另一种选择。

    但是,如果您正在谈论设置隐藏控件值的 服务器端 散列函数,您应该在散列方法之后使用Server.Transfer。因为带有 PostBackUrl 属性的按钮不会回发页面本身。

    【讨论】:

    • 它在 C# 中,这可能是个问题。但是文本框是 asp:TextBox 形式的。我是否必须将它们全部更改为常规 HTML 代码,还是有办法让 javascript 访问/设置其中的数据?
    • 不,如果它在服务器端,你也无法获取隐藏字段的值。因为如果您使用 PostBackUrl 属性,则当前页面不会回发到自身。所以你不能设置你的字段。正如我所说,请改用 Server.Transfer。
    • 是的,我不想发回服务器,因为这会将他们在服务器上键入的敏感信息公开。试图让它从表单到处理页面的第一步,这恰好是别人的,在 php =\
    • 是的,我明白了,但是这样你不能让你的服务器端代码运行。也许您可以进行 AJAX 调用,并获取您的哈希数据?然后发布到另一个应用程序?
    【解决方案2】:

    您可能想查看 Page.ClientScript.RegisterOnSubmitStatement

    这将是在表单提交时执行一些 javascript 的一种方式。

    【讨论】:

      猜你喜欢
      • 2011-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多