ASP.Net Web 表单 - 什么会导致表单操作成为相对的?

ASP.Net Web Forms - What would cause the form-action to be made relative?

我有一个 ASP.Net WebForms 站点(由 Kentico CMS 提供支持,如果它有任何影响),其中表单操作中的 URL 在每个页面上呈现为相对 URL .

通常我希望表单操作是绝对路径。

例如,如果页面 URL 是 /foo/bar/my-page 那么我希望表单操作是 /foo/bar/my-page 但它实际上呈现为 ./my-page.

这对通过在 Kentico 中重写使用 "friendly URLs" 的页面产生不利影响,其中那些 URL 具有占位符(即 /products/{productcode}/{productname})。

Kentico 在幕后将占位符值转换为 QueryString 参数,但由于上述相关 URL 问题导致 WebForms 将查询参数附加到相关 URL

/products/123/my-product 应该具有表单操作 /products/123/my-product 但被设置为 ./my-product?productcode=123&productname=my-product 这会导致 productcode 和 productname 的两个实例存在于查询参数中......以及关于它的回发要分页。

什么会导致这种情况?

有没有可能你关闭了一些output filters?当“Excluded output form filter URL”过滤器关闭时,我能够重现类似的问题 - 例如使用 / 作为值来为整个网站关闭它。过滤器的设置是什么?默认情况下关闭这些过滤器(值为 /):"Excluded XHTML filter URLs""Excluded HTML5 filter URLs"。 其他人应该被启用,否则你将需要创建一个自定义输出过滤器。