NET下URL重写及PostBack处理

来源:互联网 发布:剑灵捏脸数据免费下载 编辑:程序博客网 时间:2024/05/21 19:35

URL重写是截取传入Web 请求并自动将请求重定向到其他 URL 的过程。

比如:浏览器发来请求 http://localhost:90/URLRewriter/1.html

服务器自动将这个请求中定向为http://localhost:90/URLRewriter/url.aspx?id=1

URLRewriter下载编译后提取其中的URLRewriter.dll和ActionlessForm.dll

一、URL重写

项目引用URLRewriter.dll

web.config配置:

IIS配置:

网站--属性--主目录--配置--插入--C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/aspnet_isapi.dll

将文件是否存在 勾去掉

二、处理PostBack回发

ActionlessForm.dll以重写Form的方式用于处理PostBack回发后URL变为原始地址

项目引用ActionlessForm.dll在页面中注册一下

<%@ Register TagPrefix="skm" Namespace="ActionlessForm" Assembly="ActionlessForm" %>

将页面中的<form runat="server"></form>替换成:<skm:form id="form1" runat="server"></skm:form>

注:以这种方式处理回发将会在设计器中查看的时候为错误提示Form不可用

所以采用以下方法处理:

在微软的URLRewriter类库中添加以下类之后编译

 

在App_Browsers文件夹下创建Form.browser

这样就不需要引用ActionlessForm.dll也不需要改变Form了,只要引用URLRewriter.dll就可以了

三、在处理重写成html的时候本来网站中的html页面将会不能使用

使用以上方式将不存在找个问题

如果还不行可以在<compilation debug="true">节点下添加

<buildProviders>
        <add extension=".html" type="System.Web.Compilation.PageBuildProvider" />
</buildProviders>

在<httpHandlers>节点下添加(如果之前使用的是http处理程序执行重写的,请写在前面)

<add path="*.html" verb="*" type="System.Web.UI.PageHandlerFactory" validate="true"/>

原创粉丝点击