gpt4 book ai didi

c# - 如何更改 Request.RawUrl 属性?

转载 作者:太空宇宙 更新时间:2023-11-03 14:35:44 25 4
gpt4 key购买 nike

MVC 的 BeginForm 帮助程序在制作表单的操作时使用 Request.RawUrl 属性。我确信这通常没问题,但它给我带来了问题。

我在我的网站上使用了 URL 重写器。在 global.asax 中,我有以下代码来理顺重写器的操作。

protected void Application_BeginRequest(object sender, EventArgs e)
{
var app = sender as HttpApplication;
if (app != null)
if (app.Request.AppRelativeCurrentExecutionFilePath.Contains("~/rewritten.mvc"))
app.Context.RewritePath(app.Request.Url.PathAndQuery.Replace("/rewritten.mvc", ""));
}

问题是 app.RewritePath 不影响 RawUrl 属性,因此当 BeginForm 助手写入操作时,它最终会在目标 url 中嵌入“/rewritten.mvc”,这是不正确的。

我知道我可以在 BeginForm() 方法中使用重载来专门针对 Controller 和操作,但这有其自身的缺点,在我的特定情况下我不能这样做。

在我的 Application_BeginRequest 方法中,如何改变 RawUrl 属性的输出? (我想我应该提到这个属性没有 setter。)

最佳答案

您无法更改 RawUrl 属性。您是否考虑过使用 MVC 中内置的路由功能而不是使用外部重写器?

关于c# - 如何更改 Request.RawUrl 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1160988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com