【发布时间】:2011-07-13 10:46:35
【问题描述】:
我们正在使用 asp.net 4.0 并使用 Web 表单进行路由来创建友好的 url。
路由工作正常,只是没有将正确的“操作”值分配给具有多个级别的任何路由的母版页中的表单元素。
例如,使用 .../customer/12345 浏览的路线 ( customer/{customerid} ) 仅在表单的“action”属性中显示 12345。问题在于它不完整并且任何回发都失败并给出错误“不允许用于访问路径的 HTTP 动词 POST”如果我将操作更新为“customer/12345”(使用 Firebug),则回发工作正常。
在使用客户/客户等静态路由时甚至会出错,它只将“客户”而不是“客户/客户”作为表单的操作值。基本上,只将路线的最后一段放入动作属性而不是整个路线。为什么?
关于如何纠正这个问题的任何想法?
【问题讨论】:
-
我进一步发现我可以通过在 Page_Load 事件中将表单操作重写为 [form1.Action = Request.Url.PathAndQuery;] 来解决。应该有更好的解决方案吗?
标签: asp.net routing webforms postback postbackurl