asp.net url重写浅谈

2023-07-08 10:41 43次浏览 问答

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><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><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设置:这样的话伪静态就可以用了
C:\WINDOWS\Microsoft。
NET\Framework\v2。0。50727\aspnet_isapi。dll —这是上面的路径浏览Default。aspx页ListCategories。aspx –页面其实在服务器上面是没有的。它里面的内容是Default。aspx的内容,因为配置文件里面设置了写得有点乱。
本例子是和微软的重写url基本一样的。算是简单化了一点点呵呵。

相关推荐