我们正在使用asp.net 4.0并使用Web表单进行路由来创建友好的URL。
路由工作正常,除了没有为具有多个级别的任何路由的主页面中的表单元素分配正确的“action”值。
例如,浏览到〜/ customer / 12345时的路径(customer / {customerid})仅在表单的“action”属性中显示12345。这个问题是它不完整,任何回发都失败并给出错误“不允许用于访问路径的HTTP动词POST”如果我将操作更新为“customer / 12345”(使用Firebug),则回发工作正常。
当使用像客户/客户这样的静态路由时,它甚至会出错,它只会将“客户”而非“客户/客户”作为表单的操作值。基本上,只将路径的最后一部分放入action属性而不是整个路径。为什么呢?
有关如何纠正此问题的任何想法?
答案 0 :(得分:2)
您可以通过在form1.Action = Request.Url.PathAndQuery;]
事件中将Page_Load
覆盖表单操作来解决此问题
答案 1 :(得分:0)
见related Topic。
它使用Request.RawUrl
代替Request.Url.PathAndQuery
,其接缝返回相同的值。