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"。
其他人应该被启用,否则你将需要创建一个自定义输出过滤器。
我有一个 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"。 其他人应该被启用,否则你将需要创建一个自定义输出过滤器。