asp.net url重写浅谈 |
本文标签:asp.net,url重写 ActionlessForm.dll------用来处理回发 URLRewriter.dll----- 是微软封装好了的一个URL重写组件 添加引用---- 具体的使用说明请去看 http://msdn.microsoft.com/zh-cn/library/ms972974.aspx#XSLTsection123121120120 比我说得好得多 。 。 具体使用方法: 首先web.config的配置: 复制代码 代码如下: <?xml version="1.0"?> <configuration> <configSections> <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" /> </configSections> <RewriterConfig> <Rules> <RewriterRule> <LookFor>'/ListCategories\.aspx</LookFor> <SendTo>'/Default.aspx</SendTo> </RewriterRule> <RewriterRule> <LookFor>'/(\d+)\.html</LookFor> <SendTo>'/Cover.aspx?id=$1</SendTo> </RewriterRule> </Rules> </RewriterConfig> <system.web> <httpModules> <add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter"/> </httpModules> <compilation debug="true"/> </system.web> </configuration> 主要配置的代码是这些 。其他的根据自己的需要和.net的版本自行添加 。 然后Default.aspx,Cover.aspx,新建2个页面 Default.aspx: 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>无标题页</title> </head> <body> <form id="form1" runat="server"> <div> <a href="ListCategories.aspx">ListCategories.aspx</a> <a href="30.html">30.html</a> </div> </form> </body> </html> Cover.aspx: 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Cover.aspx.cs" Inherits="Cover" %> <%@ Register TagPrefix="skm" Namespace="ActionlessForm" Assembly="ActionlessForm" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Cover</title> </head> <body> <skm:form id="form1" runat="server"> <div> Cover页面 <h4><a href="javascript:void(0)" onclick="history.go(-1)">返回上一页</a></h4> <asp:Button ID="Button1" runat="server" Text="Button" /> </div> </skm:form> </body> </html> Cover.aspx.cs: 复制代码 代码如下: using System; using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; public partial class Cover : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (Request.QueryString["id"] == null) { Response.End(); } else { int id = Convert.ToInt32(Request.QueryString["id"]); Response.Write(id); } } } 还要去对iis设置: 这样的话伪静态就可以用了 浏览Default.aspx页 ListCategories.aspx --页面其实在服务器上面是没有的 。它里面的内容是Default.aspx的内容,因为配置文件里面设置了 写得有点乱 。 本例子是和微软的重写url基本一样的 。算是简单化了一点点呵呵 。 |