ASP.net 4.0 Webforms 路由 Postback 问题

4
我们正在使用asp.net 4.0和Web Forms进行路由,以创建友好的URL。 路由正常工作,但是对于任何具有多个级别的路由,正确的“action”值都未分配给主页中的表单元素。
例如,当使用... / customer / 12345浏览路由(customer / {customerid})时,只在表单的“action”属性中显示12345。 问题在于它不完整,任何postback都会失败并显示错误“使用HTTP动词POST访问路径不允许”。 如果我更新操作为“customer / 12345”(使用Firebug),则postback可以正常工作。
即使使用静态路由如“customer / customer”,它仅将“customer”而不是“customer / customer”放入表单的操作值中。 基本上,只将路由的最后一部分放入操作属性中,而不是整个路由。 为什么?
有什么想法如何解决这个问题吗?

1
我进一步发现,我可以通过在Page_Load事件中覆盖表单操作[form1.Action = Request.Url.PathAndQuery;]来解决问题。是否应该有更好的解决方案? - Raj
https://stackoverflow.com/questions/33307491/asp-net-url-loses-page-path-on-postback - Alexander Brattsev
2个回答

2

您可以通过在Page_Load事件中覆盖表单操作来解决此问题,如下所示:form1.Action = Request.Url.PathAndQuery;


0
请查看此相关主题。 它使用Request.RawUrl而不是Request.Url.PathAndQuery,这似乎返回相同的值。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接