【问题标题】:100% code-behind form post100% 代码隐藏表单发布
【发布时间】:2010-11-02 02:46:16
【问题描述】:

我正在寻找一种方法来连接 ASP:LinkBut​​ton 以显示为链接,但在后台(100% 在后面的代码中,标记中没有虚拟的预填充表单)做一个表单发布(目标 = _空白的)。我有一个要传递的表单操作、方法和参数,我将在 LinkBut​​ton 的“单击”事件中查询它们。实现这一目标的最佳方法是什么?

【问题讨论】:

  • 有多种方法可以阅读您的问题。你的意思是你想在一个根本没有表单的页面上有一个链接(无论如何你都需要回发)让服务器端代码决定在弹出窗口中单击时要加载哪个 url?
  • 服务器端代码将在“点击”事件中决定 URL、参数等。

标签: asp.net forms webforms linkbutton form-post


【解决方案1】:

嗯,有很多方法可以做我认为你想做的事情:)

一个问题;标准弹出窗口不会触发事件处理程序调用,因为它们通过回发映射到我相信的页面。

如果您对仅 GET 提交感到满意:

选项 A: 添加没有设置目标的链接按钮,并为点击设置一个回发事件处理程序

设置您的 URL 并将其传递回页面到一个 JS 函数中,该函数将立即加载,例如或使用 jquery 等。

在 JS 函数中,您使用 window.open() 加载 URL,目标设置为“_blank”

效果: 用户点击链接,所有代码都是服务器端的,用于计算出要显示的 URL,页面刷新到原来的位置,然后加载一个弹出窗口,显示新的 URL

选项 B: 将链接设置为具有 target="_blank"

使用可以在 page_load() 中预处理的查询字符串参数使其调用新页面或同一页面

在新页面或控制代码块中,进行计算并将 Response.Redirect() 到新目标

效果: 用户单击链接,没有页面刷新,只是一个新的弹出窗口立即重定向到新页面。我认为这是一个更清洁的解决方案!

如果您需要 POST 支持:

动态创建元素或 HTML 字符串来表示具有所有需要的输入元素的表单,并将其输出到弹出窗口中(使用选项 b 作为粗略的启动模板)并让 onload 立即提交表单,这将执行一个 POST 到您通过服务器端脚本决定的 URL,其效果与选项 b 相同,但具有表单级别的 POST。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-10
    • 2013-11-22
    • 1970-01-01
    • 1970-01-01
    • 2021-09-08
    • 2016-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多