【发布时间】:2021-02-01 18:46:08
【问题描述】:
在一个 .aspx 页面中,我使用 JavaScript 填写了许多隐藏的表单域,然后想将表单发布到另一个 .aspx 页面。它正确提交了表单,但是当我查看表单操作中调用的页面中的 Request.Params["org"] 时,它为空。
<script src="prototype.js"></script>
<script>
function doIt() {
$('org').value = org_int;
$('frmCheckout').submit();
}
</script>
...
<form id="frmCheckout" method="post" action="checkout.aspx">
<input type="hidden" value="" id="org" name="org">
<input type="submit" onclick="doIt()" value="Submit">
</form>
$ 是在示例之前引入的原型符号。原型中的 $ 与 document.getElementById('frmCheckout') 相同。
主要编辑 2/1/2021 7:52: 在寻找解决方案时,我发现了一些新信息,但仍然不起作用。
我发现 PostBackUrl 会将 .aspx 的操作更改为另一个 .aspx 页面。这部分有效。提交时调用Checkout.aspx
<asp:Button ID="Submit" PostBackUrl="Checkout.aspx" runat="server" Text="Submit" />
但是 Checkout.aspx 中没有数据...... Request.Form(应该有)或 Request.Params 中没有值。
我也试过:
<asp:TextBox runat="server" name="jsonString" id="jsonString" value="js" />
但我得到一个无效的 __VIEWSTATE 我知道我应该更改它,但还没有任何效果。
【问题讨论】:
-
js 无法将数据从一个页面传输到另一个页面。 session 或 cookie 可以帮助您。 stackoverflow.com/questions/17502071/…
-
暂时让你的隐藏元素成为标准文本框。在你提交之前它会显示你的期望值吗?
-
Jasen:我一直在检查调试器中的值,但将其设置为文本框以确保它正在显示数据。 Murat:我确实有数百个页面用 JS 填充表单字段并发布到经典的 asp 页面……这是第一次使用 .aspx。那么,.aspx 有什么不同呢?
-
你的价值观真的被公布了吗?用 F12 检查。
-
使用调试器 (F12) 来验证是否将正确的值放入表单字段......它们是。目标 .aspx 获取帖子,但那里没有值。
标签: c# form-submit