gpt4 book ai didi

asp.net - urlrewrite.net - 在 PostBack 上附加的真实查询字符串

转载 作者:行者123 更新时间:2023-12-02 05:20:31 24 4
gpt4 key购买 nike

我正在使用 urlrewrite.net 来构建更友好的 url,并且在我的 web.config 中有以下重写规则:

<if url="^/forsale/(.+)/(.+)/(.+)/(.+)/(.+)">
<rewrite to="/aircraft/result.aspx?view=$2&amp;cat=$3&amp;loc=$4&amp;model=$5" />
</if>

这意味着我现在可以浏览到: http://www.mydomain.com/dept/manufacturer/,734,,810,,159,,163,,,,,,,,/1/999999/false

查看实际网址: http://www.mydomain.com/folder/result.apsx?view=,734,,810,,159,,163,,,,,,,,/1/999999/false?view=,734,,810,,159,,163,,,,,,,,&cat=1&loc=999999&model=false

在我触发任何类型的 PostBack 事件(按钮点击等)之前,这一切正常,此时真实页面的查询字符串被添加到重写 url 的末尾,例如:

http://www.mydomain.com/dept/manufacturer/,734,,810,,159,,163,,,,,,,,/1/999999/false?view=,734,,810,,159,,163,,,,,,,,&cat=1&loc=999999&model=false

任何帮助/建议/答案将不胜感激。

谢谢。

最佳答案

.NET Framework 3.5 SP1 中的 ASP.NET 提供了一种非常简单的方法来解决这个问题。现在您可以使用名为 Action 的 HtmlForm 类的属性将回发 URL 设置为浏览器在任何重写发生之前请求的 URL。在 ASP.NET 中,您可以使用 HttpRequest.RawUrl 属性获取该 URL。因此,要在使用 URL 重写模块时修复 Web 表单的回发 URL,您需要将以下代码添加到页面:

protected void Page_Load(object sender, EventArgs e)  
{
form1.Action = Request.RawUrl;
}

点击这里了解详情:

ASP.NET postbacks and URL rewriting

另外,检查一下:

使用 URL 重写处理 ASP.NET PostBacks:

在 ASP.NET 2.0 中,有一个更清晰的技巧,您可以使用它来重写控件上的“action”属性。具体来说,您可以利用新的 ASP.NET 2.0 控件适配器扩展性体系结构来自定义控件的呈现,并使用您提供的值覆盖其“action”属性值。这不需要您更改 .aspx 页面中的任何代码。相反,只需将一个 .browser 文件添加到您的/app_browsers 文件夹中,该文件夹注册一个控制适配器类以用于输出新的“action”属性:

点击这里了解详情:

Tip/Trick: Url Rewriting with ASP.NET :

关于asp.net - urlrewrite.net - 在 PostBack 上附加的真实查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13916092/

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