You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从站点子目录提交表单出现Invalid postback or callback argument错误如何解决

问题根本原因

该问题由ASP.NET WebForm的表单路径解析错误+IIS默认文档匹配逻辑共同导致:

  1. 当你访问/Registration路径时,IIS匹配到子目录下的default.aspx返回页面,但WebForm默认生成的<form runat="server">标签的action属性错误解析为根目录的default.aspx,而非当前子目录下的页面。
  2. 表单提交时POST请求直接发送到根目录default.aspx,根目录页面的视图状态、事件验证哈希与子目录页面生成的完全不匹配:哪怕你在子目录页面关闭了事件验证,实际处理POST请求的是根目录未关闭事件验证的default.aspx,所以依然会触发Invalid postback or callback argument错误,提交后地址栏也会变成根目录default.aspx的地址。
  3. 代码复制到根目录registration_test.aspx后运行正常,是因为根目录下的页面生成的表单action指向自身路径,POST请求提交到正确的页面,事件验证和视图状态完全匹配。
验证方法

打开浏览器开发者工具(F12),查看/Registration页面的前端源码,找到<form>标签,可确认其action属性值为根目录default.aspx而非子目录路径。

解决方案

可任选以下一种方案修复:

  • 手动指定表单action路径:在子目录default.aspx的form标签上添加action属性,代码为<form id="form1" runat="server" action="./default.aspx">
  • 动态设置提交路径:在子目录default.aspx的Page_Load事件中添加代码form1.Action = Request.RawUrl;,动态获取当前访问路径作为表单提交地址
  • 调整访问/配置逻辑:直接访问完整路径https://www.website.com/Registration/default.aspx验证功能,确认正常后可通过IIS配置或URL重写规则,将/Registration的请求直接映射到子目录下的default.aspx,避免路径解析错误
  • 检查全局重写规则:排查根目录web.config中的URL重写规则,确认是否存在将子目录请求强制转发到根目录的规则,调整规则优先级排除子目录POST请求即可

内容的提问来源于stack exchange,提问作者Joe Defill

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 04:42:03