【问题标题】:ASP.net 4.0 Webforms Routing Postback IssueASP.net 4.0 Webforms 路由回发问题
【发布时间】: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


【解决方案1】:

看到这个related Topic。 它使用Request.RawUrl 而不是Request.Url.PathAndQuery,它们接缝返回相同的值。

【讨论】:

    【解决方案2】:

    您可以通过在 Page_Load 事件中将表单操作覆盖为 form1.Action = Request.Url.PathAndQuery;] 来解决此问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-02
      • 1970-01-01
      • 2011-08-08
      • 2016-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多