ASP.net 4.0 Webforms路由回发问题

我们正在使用asp.net 4.0并使用Web表单进行路由来创建友好的URL.

路由工作正常,除了没有为具有多个级别的任何路由的主页面中的表单元素分配正确的“操作”值.

例如,使用… / customer / 12345浏览到的路径(customer / {customerid})仅在表单的“action”属性中显示12345.这个问题是它不完整,任何回发都失败并给出错误“不允许用于访问路径的HTTP动词POST”如果我将操作更新为“customer / 12345”(使用Firebug),则回发工作良好.

它甚至在使用像客户/客户这样的静态路由时出错,它只将“客户”而不是“客户/客户”作为表单的动作值.基本上,只将路径的最后一部分放入action属性而不是整个路径.为什么?

有关如何纠正此问题的任何想法?

最佳答案 您可以通过在Page_Load事件中将form1.Action = Request.Url.PathAndQuery;]重写为表单操作来解决此问题.

点赞