c# - C# 将表单从 JavaScript 发布到另一个 .aspx 但在 Params 中没有参数
问题描述
在一个 .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 我知道我应该改变它,但还没有任何效果。
解决方案
请改变方法。考虑在表单中添加一个 asp 按钮并为该按钮触发 click 事件;按钮属性需要像 Microsoft Docs How to: Post ASP.NET Web Pages to a different Page 的这个主题:
<script src="prototype.js"></script>
<script>
function doIt() {
$('#org').value = org_int;
$('#btnPostBack').click();
}
</script>
...
<form id="frmCheckout" method="post">
<input type="hidden" value="" id="org" name="org">
<input type="button" onclick="doIt()" value="Submit">
<asp:Button ID="btnPostBack" ClientIdMode="Static" PostBackUrl="~/checkout.aspx" runat="server" Text="Post Form To Another Page" style="display:none;"/>
</form>
注意:我在您的代码中看到 id 的选择器在您的 JS 代码中不包含主题标签前缀...
推荐阅读
- sql - 从 SQL 计划作业运行的 Powershell 未写入我的日志文件
- c# - `Hashtags 属性仅对 Exchange Exchange2015 或更高版本有效。当`EmailMessage.Bind`
- r - a[(input + 1):length(a)] 和 a[input + 1:length(a)] 有什么区别
- javafx - Javafx2.2画布放大缩小失真问题
- javascript - 如何在其他文件中导出/使用 socket.io?
- vba - 使用 VBA/条件格式的热图
- laravel - 如何将 JSON 数据检索到 Laravel 并在视图上显示它的元素?
- gimp - 有没有办法在 GIMP 中将精灵表切割成单个图像?
- jquery - 填写表格,点击按钮,在线网站每 5 分钟显示一次提醒
- python - python matplotlib.pyplot log-log 绘图点未显示,因为 python 选择的 y 范围不好