小弟最近苦于学习asp.net伪静态方法,主要是通过重写浏览器地址来改变的。
我按照微软MSDN官方的URLRewriter文章介绍,下载并生成了URLRewriter.dll,并引入到了工程中。
下面我一个页面一个页面的贴代码,求给位老师指点,到底哪儿错了,方法用尽了都不能实现重写。
分不够,立刻追分第一个页面---index.html<%@ Page Language="C#" AutoEventWireup="true" CodeFile="index.aspx.cs" Inherits="page_index" %><!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>
<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<table>
<table width="400" border="0">
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><table width="400" border="0" style="border-bottom:#CCCCCC 1px dashed">
<tr>
<td>
</td><ASP:hyperlink id=Hyperlink1 title='<%#DataBinder.Eval(Container.DataItem,"title").ToString()%>' runat="server" Text='<%#FormatString_Size_40(DataBinder.Eval(Container.DataItem,"title").ToString())%>' NavigateUrl='<%#"~/web/new.aspx?id="+DataBinder.Eval(Container.DataItem,"id").ToString()%>' NAME="Hyperlink1">
</ASP:hyperlink>
</tr>
</table></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater></div>
</form>
</body>
</html>
index.aspx.cs代码using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;public partial class page_index : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Repeater1_Data_Bind();
}
void Repeater1_Data_Bind()
{
string str = "Server=(local);Uid=sa;password=sa;Database=ShuangLiuDB";
string sql = "select TOP 20 * from News_Table order by dtt DESC";
SqlConnection conn = new SqlConnection(str);
conn.Open();
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
DataSet ds = new DataSet();
da.Fill(ds, "News_Table");
DataTable dt = ds.Tables["News_Table"];
this.Repeater1.DataSource = dt.DefaultView;
this.Repeater1.DataBind();
} protected string FormatString_Size_40(string str)
{
if (str.Length > 20)
{
str = str.Substring(0, 19) + "...";
}
return str;
}
}
显示具体内容的页面new.html<%@ Page Language="C#" AutoEventWireup="true" CodeFile="new.aspx.cs" Inherits="web_new" %><!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>
<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<table width="490" border="0" align="center" cellpadding="0" cellspacing="0">
</HeaderTemplate>
<ItemTemplate>
<!--DWLayoutTable-->
<tr>
<td width="490" height="25" valign="top"><%# DataBinder.Eval(Container.DataItem, "title")%></td>
</tr>
<tr>
<td height="22" valign="top"><%# DataBinder.Eval(Container.DataItem, "dtt")%></td>
</tr>
<tr>
<td height="190" valign="top"><%# DataBinder.Eval(Container.DataItem, "content")%></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</div>
</form>
</body>
</html>
new.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;public partial class web_new : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
News_Bind();
}
void News_Bind()
{
string type = Request.QueryString["id"].ToString();
string str = "Server=(local);uid=sa;password=sa;database=shuangliudb";
string sql = "Select * from News_Table where id=" + type;
SqlConnection conn = new SqlConnection(str);
conn.Open();
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
DataSet ds = new DataSet();
da.Fill(ds, "News_Table");
DataTable dt = ds.Tables["News_Table"];
this.Repeater1.DataSource = dt.DefaultView;
this.Repeater1.DataBind();
}
}
web.config<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
</configSections> <RewriterConfig>
<Rules>
<!-- Rules for Blog Content Displayer -->
<RewriterRule>
<LookFor>~/web/new/(.[0-9]*)\.html</LookFor>
<SendTo>~/web/new.aspx?id=$1< ndTo>
</RewriterRule>
</Rules>
</RewriterConfig>
<appSettings>
<add key="dbType" value ="sql"></add>
<add key="data" value="server=.;uid=sa;pwd=sa;database=pubs;Connect Timeout=30;"></add>
</appSettings>
<system.web>
<httpHandlers>
<add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
<add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
</httpHandlers>
我在IIS中已经添加了.html解析了请给位老师指点指点,谢谢!!!
我按照微软MSDN官方的URLRewriter文章介绍,下载并生成了URLRewriter.dll,并引入到了工程中。
下面我一个页面一个页面的贴代码,求给位老师指点,到底哪儿错了,方法用尽了都不能实现重写。
分不够,立刻追分第一个页面---index.html<%@ Page Language="C#" AutoEventWireup="true" CodeFile="index.aspx.cs" Inherits="page_index" %><!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>
<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<table>
<table width="400" border="0">
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><table width="400" border="0" style="border-bottom:#CCCCCC 1px dashed">
<tr>
<td>
</td><ASP:hyperlink id=Hyperlink1 title='<%#DataBinder.Eval(Container.DataItem,"title").ToString()%>' runat="server" Text='<%#FormatString_Size_40(DataBinder.Eval(Container.DataItem,"title").ToString())%>' NavigateUrl='<%#"~/web/new.aspx?id="+DataBinder.Eval(Container.DataItem,"id").ToString()%>' NAME="Hyperlink1">
</ASP:hyperlink>
</tr>
</table></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater></div>
</form>
</body>
</html>
index.aspx.cs代码using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;public partial class page_index : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Repeater1_Data_Bind();
}
void Repeater1_Data_Bind()
{
string str = "Server=(local);Uid=sa;password=sa;Database=ShuangLiuDB";
string sql = "select TOP 20 * from News_Table order by dtt DESC";
SqlConnection conn = new SqlConnection(str);
conn.Open();
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
DataSet ds = new DataSet();
da.Fill(ds, "News_Table");
DataTable dt = ds.Tables["News_Table"];
this.Repeater1.DataSource = dt.DefaultView;
this.Repeater1.DataBind();
} protected string FormatString_Size_40(string str)
{
if (str.Length > 20)
{
str = str.Substring(0, 19) + "...";
}
return str;
}
}
显示具体内容的页面new.html<%@ Page Language="C#" AutoEventWireup="true" CodeFile="new.aspx.cs" Inherits="web_new" %><!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>
<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<table width="490" border="0" align="center" cellpadding="0" cellspacing="0">
</HeaderTemplate>
<ItemTemplate>
<!--DWLayoutTable-->
<tr>
<td width="490" height="25" valign="top"><%# DataBinder.Eval(Container.DataItem, "title")%></td>
</tr>
<tr>
<td height="22" valign="top"><%# DataBinder.Eval(Container.DataItem, "dtt")%></td>
</tr>
<tr>
<td height="190" valign="top"><%# DataBinder.Eval(Container.DataItem, "content")%></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</div>
</form>
</body>
</html>
new.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;public partial class web_new : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
News_Bind();
}
void News_Bind()
{
string type = Request.QueryString["id"].ToString();
string str = "Server=(local);uid=sa;password=sa;database=shuangliudb";
string sql = "Select * from News_Table where id=" + type;
SqlConnection conn = new SqlConnection(str);
conn.Open();
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
DataSet ds = new DataSet();
da.Fill(ds, "News_Table");
DataTable dt = ds.Tables["News_Table"];
this.Repeater1.DataSource = dt.DefaultView;
this.Repeater1.DataBind();
}
}
web.config<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
</configSections> <RewriterConfig>
<Rules>
<!-- Rules for Blog Content Displayer -->
<RewriterRule>
<LookFor>~/web/new/(.[0-9]*)\.html</LookFor>
<SendTo>~/web/new.aspx?id=$1< ndTo>
</RewriterRule>
</Rules>
</RewriterConfig>
<appSettings>
<add key="dbType" value ="sql"></add>
<add key="data" value="server=.;uid=sa;pwd=sa;database=pubs;Connect Timeout=30;"></add>
</appSettings>
<system.web>
<httpHandlers>
<add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
<add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
</httpHandlers>
我在IIS中已经添加了.html解析了请给位老师指点指点,谢谢!!!
解决方案 »
- .net网站,怎么做地图,像天涯,google,前程无忧里的那个样子!
- 弹出新页面后,不能操作主页面
- 如用使用Session来维持登录用户信息,如何显示有哪些Session?如何强行结束其中一个Session?
- 定义的字符串是一个正则,结果提示我错误
- 谁做过知识管理系统呀,帮忙了
- FreeTextBox的问题..帮忙啊..
- 水晶报表连接数据库的问题
- 我在Win2000server上安装Asp.Net是否对本机ASP程序有影响?
- 如何在vs。net的替换中把一行的东西替换换成2行的东西
- 求:英文版SQLSERVER7.0下varchar字段写入中文不是??的方法!
- js与asp.net交互的问题
- asp.net连接mysq数据库的代码
1)转向的正则表达式修改后可能要重设一下缓存,iisreset试试
2)html解析是否加入了是否修改成与aspx一样的解析方式,是否加入了判断文件是否存在其他建议:
1)添加一个new文件夹,里面放一个空的default.aspx
看是不是URLRewriter 的时候出现了问题
<Rules>
<!-- Rules for Blog Content Displayer -->
<RewriterRule>
<LookFor>~/web/new/(.[0-9]*)\.html</LookFor>
<SendTo>~/web/new.aspx?id=$1< ndTo>
</RewriterRule>
</Rules>
</RewriterConfig>
这里写错了