Phi*_*ley 2 .net asp.net rewrite iis-6 url-rewriting
我正在使用urlrewrite.net来构建更友好的URL,并在我的web.config中有以下重写规则:
<if url="^/forsale/(.+)/(.+)/(.+)/(.+)/(.+)">
<rewrite to="/aircraft/result.aspx?view=$2&cat=$3&loc=$4&model=$5" />
</if>
Run Code Online (Sandbox Code Playgroud)
这意味着我现在可以浏览到:http: //www.mydomain.com/dept/manufacturer/,734,,810,,159,,163,,,,,,,,,//999999/false
查看实际网址:http://www.mydomain.com/folder/result.apsx? view = 734,810,15,19 ?视图=,734,,810,,159,,163 ,,,,,,,,&猫= 1&LOC = 999999&模型=假
这工作正常,直到我触发任何类型的PostBack事件(按钮单击等),此时真实页面的查询字符串被添加到重写URL的末尾,例如:
任何帮助/建议/答案将不胜感激.
谢谢.
.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;
}
Run Code Online (Sandbox Code Playgroud)
点击这里查看详情:
另外,检查一下:
使用URL重写处理ASP.NET PostBacks:
使用ASP.NET 2.0,您可以使用更清晰的技巧来重写控件上的"action"属性.具体来说,您可以利用新的ASP.NET 2.0控制适配器可扩展性体系结构来自定义控件的呈现,并使用您提供的值覆盖其"action"属性值.这不需要您更改.aspx页面中的任何代码.相反,只需将.browser文件添加到/ app_browsers文件夹中,该文件夹注册一个Control Adapter类,用于输出新的"action"属性:
点击这里查看详情:
| 归档时间: |
|
| 查看次数: |
1733 次 |
| 最近记录: |