﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-Apiapia的.NET学习之旅-最新评论</title><link>http://www.cnblogs.com/apiapia/CommentsRSS.aspx</link><description>ASP.NET
VB.Net</description><language>zh-cn</language><pubDate>Fri, 05 Mar 2010 16:34:18 GMT</pubDate><lastBuildDate>Fri, 05 Mar 2010 16:34:18 GMT</lastBuildDate><generator>cnblogs</generator><item><title>Re:URLRewrite伪静态与AspNetPager分页控件的结合</title><link>http://www.cnblogs.com/apiapia/archive/2010/03/12/1679497.html#1778545</link><dc:creator>布袋</dc:creator><author>布袋</author><pubDate>Fri, 12 Mar 2010 10:49:53 GMT</pubDate><guid>http://www.cnblogs.com/apiapia/archive/2010/03/12/1679497.html#1778545</guid><description><![CDATA[

实际应用效果，请查看网站：http://www.elinknet.cn

新闻页是：http://www.elinknet.cn/News.html<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/apiapia/" target="_blank">布袋</a> 2010-03-12 18:49 <a href="http://www.cnblogs.com/apiapia/archive/2010/03/12/1679497.html#1778545#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:URLRewrite伪静态与AspNetPager分页控件的结合</title><link>http://www.cnblogs.com/apiapia/archive/2010/03/12/1679497.html#1778541</link><dc:creator>布袋</dc:creator><author>布袋</author><pubDate>Fri, 12 Mar 2010 10:39:59 GMT</pubDate><guid>http://www.cnblogs.com/apiapia/archive/2010/03/12/1679497.html#1778541</guid><description><![CDATA[web.config

    &lt;!-- http://localhost/News-ClassID51-ToPage2.html    http://localhost/News.aspx?ClassID=51&amp;topage=3 --&gt;

&lt;!-- 这个要写在前面，因为 classID有可能刚开始是没有读取的--&gt;
    &lt;RewriterRule&gt;
      &lt;LookFor&gt;~/News-ClassID\-ToPage(\d{0,10})\.html&lt;/LookFor&gt;
      &lt;SendTo&gt;~/News.aspx?ToPage=$1&lt;/SendTo&gt;
    &lt;/RewriterRule&gt;
    
&lt;!-- &amp;这个换成&amp;amp; 不然会出错 --&gt;
    &lt;RewriterRule&gt;
      &lt;LookFor&gt;~/News-ClassID(\d{0,10})\-ToPage(\d{0,10})\.html&lt;/LookFor&gt;
      &lt;SendTo&gt;~/News.aspx?ClassID=$1&amp;amp;ToPage=$2&lt;/SendTo&gt;
    &lt;/RewriterRule&gt;

News.aspx页面

&lt;webdiyer:AspNetPager
EnableUrlRewriting=&quot;true&quot;
            UrlRewritePattern=&quot;./News-ClassID%ClassID%-ToPage{0}.html&quot;
&gt;
        &lt;/webdiyer:AspNetPager&gt;
<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/apiapia/" target="_blank">布袋</a> 2010-03-12 18:39 <a href="http://www.cnblogs.com/apiapia/archive/2010/03/12/1679497.html#1778541#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:URLRewrite伪静态与AspNetPager分页控件的结合</title><link>http://www.cnblogs.com/apiapia/archive/2010/03/12/1679497.html#1778539</link><dc:creator>布袋</dc:creator><author>布袋</author><pubDate>Fri, 12 Mar 2010 10:38:38 GMT</pubDate><guid>http://www.cnblogs.com/apiapia/archive/2010/03/12/1679497.html#1778539</guid><description><![CDATA[[quote]小宇儿：
恩，我也用了这个不过有个问题想问你
http://www.bzzckj.com/NewsList.aspx
这个页面当我点击左边的新闻类别的时候在分页怎么办，
直接点击新闻过来的时候分页和你上面说的是一样的。[/quote]


ASPNETPAGER 官方的解释是

该属性仅当 UrlPaging 的值为true时才有效。要重写的Url路径可以是相对于当前的Url路径，如：../pagelist_{0}.aspx ，也可以是绝对路径，如：http://www.webdiyer.com/articles/{0}.aspx ，用“{0}”占位符来表示AspNetPager分页控件的当页页索引值，用“%参数名%”表示Url中相应的参数的值。如果不设置该值，默认值为当前页面路径加下划线后跟页索引， 如当前Url是 http://www.webdiyer.com/articlelist.aspx ，不设置 UrlRewritePattern 时，第一页的默认路径就是 http://www.webdiyer.com/articlelist_1.aspx ，第二页就是 http://www.webdiyer.com/articlelist_2.asp ，依次类推。以下举例说明如何设置重写格式： 
1、原始Url：http://www.webdiyer.com/articlelist.aspx?type=aspnet&amp;page=2（其中参数page=2为AspNetPager传递的页索引参数，这个参数名可以通过UrlPageIndexName属性设置，默认值为“page”）
重写为：http://www.webdiyer.com/articlelist/aspnet/2.aspx ，则应设置：UrlRewritePattern=&quot;./articlelist/%type%/{0}.aspx&quot;; 

2、原始Url：http://www.webdiyer.com/articlelist.aspx?type=dotnet&amp;subtype=aspnet&amp;page=3 （其中参数page=3为AspNetPager传递的页索引参数，这个参数名可以通过UrlPageIndexName属性设置，默认值为“page”）
重写为：http://www.webdiyer.com/articlelist/dotnet/aspnet/page_3.aspx ，则应设置：UrlRewritePattern=&quot;./articlelist/%type%/%subtype%/page_{0}.aspx&quot;; 


根据以上的实例，可以自行演变一下，带二个参数以上的代码如下：


[code=vbnet]
web.config

    &lt;!-- http://localhost/News-ClassID51-ToPage2.html    http://localhost/News.aspx?ClassID=51&amp;topage=3 --&gt;

&lt;!-- 这个要写在前面，因为 classID有可能刚开始是没有读取的--&gt;
    &lt;RewriterRule&gt;
      &lt;LookFor&gt;~/News-ClassID\-ToPage(\d{0,10})\.html&lt;/LookFor&gt;
      &lt;SendTo&gt;~/News.aspx?ToPage=$1&lt;/SendTo&gt;
    &lt;/RewriterRule&gt;
    
&lt;!-- &amp;这个换成&amp;amp; 不然会出错 --&gt;
    &lt;RewriterRule&gt;
      &lt;LookFor&gt;~/News-ClassID(\d{0,10})\-ToPage(\d{0,10})\.html&lt;/LookFor&gt;
      &lt;SendTo&gt;~/News.aspx?ClassID=$1&amp;amp;ToPage=$2&lt;/SendTo&gt;
    &lt;/RewriterRule&gt;

News.aspx页面

&lt;webdiyer:AspNetPager
EnableUrlRewriting=&quot;true&quot;
            UrlRewritePattern=&quot;./News-ClassID%ClassID%-ToPage{0}.html&quot;
&gt;
        &lt;/webdiyer:AspNetPager&gt;

[/code]<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/apiapia/" target="_blank">布袋</a> 2010-03-12 18:38 <a href="http://www.cnblogs.com/apiapia/archive/2010/03/12/1679497.html#1778539#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:URLRewrite伪静态与AspNetPager分页控件的结合</title><link>http://www.cnblogs.com/apiapia/archive/2010/03/07/1679497.html#1775504</link><dc:creator>小宇儿</dc:creator><author>小宇儿</author><pubDate>Sun, 07 Mar 2010 14:15:38 GMT</pubDate><guid>http://www.cnblogs.com/apiapia/archive/2010/03/07/1679497.html#1775504</guid><description><![CDATA[恩，我也用了这个不过有个问题想问你
http://www.bzzckj.com/NewsList.aspx
这个页面当我点击左边的新闻类别的时候在分页怎么办，
直接点击新闻过来的时候分页和你上面说的是一样的。<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/apiapia/" target="_blank">小宇儿</a> 2010-03-07 22:15 <a href="http://www.cnblogs.com/apiapia/archive/2010/03/07/1679497.html#1775504#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:.NET伪静态使用以及和纯静态的区别</title><link>http://www.cnblogs.com/apiapia/archive/2010/02/12/1665318.html#1764400</link><dc:creator>布袋</dc:creator><author>布袋</author><pubDate>Thu, 11 Feb 2010 18:49:13 GMT</pubDate><guid>http://www.cnblogs.com/apiapia/archive/2010/02/12/1665318.html#1764400</guid><description><![CDATA[补充：

首先在以下地址：
http://download.microsoft.com/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cf/MSDNURLRewriting.msi

下载 MS 的 URLRewriter.dll，放到你的web程序的bin下。

注：以上地址下载的是微软的一个完整的 URLrewrite 技术示例。下载后是一个 MSDNURLRewriting.msi 文件，安装在本地机上，安装后，在安装目录内有三个文件夹，分别是：ActionlessForm ,RewriterTester,URLRewriter 这三个目录。 其中 URLRewriter 文件夹便是一个完整的 URLRewrite 的项目示例。此项目中的 BIN 目录中有两 个 dll,分别为
ActionlessForm.dll 和 URLRewriter.dll ，这两个 dll 就是项目 ActionlessForm 和 URLRewriter 产生的 dll 类库，是示例项目 RewriterTester 实现 URLRwrite 技术所用到的类库文件。

如何把此技术应用到你自己的项目中去，其实很简单：

首先，把 ActionlessForm.dll 和 URLRewriter.dll 两个 dll 文件放到你自己项目中的 bin 目录下。
然后，修改你的 web.config 文件，完整的 web.config 文件如下：

(只需在普通的 web.config 文件中填加两个地方)
----------------------------------------------
1、

在 &lt;/configSections&gt; 标签上面填加：
&lt;section name=&quot;RewriterConfig&quot; type=&quot;URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter&quot; /&gt;

2、

&lt;httpModules&gt;
      &lt;add type=&quot;URLRewriter.ModuleRewriter, URLRewriter&quot; name=&quot;ModuleRewriter&quot; /&gt;
   &lt;/httpModules&gt;

--------------------------------------------

然后，你的 aspx 程序就会按照你 web.config 文件中的 正则表达式，转换url 请求地址，实现 urlrewrit 技术。
比如：

1、http://localhost:4789/GuanTestURLRewrit/2003/07/18.aspx 
按照 web.config 文件中的正则，此 url 地址为被 重写到以下真实存在的地址
http://localhost:4789/GuanTestURLRewrit/ShowBlogContent.aspx?year=2003&amp;month=7&amp;day=18

2、http://localhost:4789/GuanTestURLRewrit/2003/default.aspx
按照 web.config 文件中的正则，此 url 地址为被 重写到以下真实存在的地址
http://localhost:4789/GuanTestURLRewrit/ShowBlogContent.aspx?year=2003

3、http://localhost:4789/GuanTestURLRewrit/Products/Confections.aspx
按照 web.config 文件中的正则，此 url 地址为被 重写到以下真实存在的地址
http://localhost:4789/GuanTestURLRewrit/ListProductsByCategory.aspx?CategoryID=3


可以自己定义自己的正则表达式实现不同的 url 重写规则

如果您想把 aspx 重写成 html 后辍名，那么则需要改动一下你的 web.config 文件，
&lt;httpHandlers&gt;
        &lt;add verb=&quot;*&quot; path=&quot;*.aspx&quot; type=&quot;URLRewriter.RewriterFactoryHandler, URLRewriter&quot; /&gt;
     &lt;add verb=&quot;*&quot; path=&quot;*.html&quot; type=&quot;URLRewriter.RewriterFactoryHandler, URLRewriter&quot; /&gt;
&lt;/httpHandlers&gt;
这样好像还不行,那是因为在IIS里面无法解析.html后缀名(具体我也不知道怎么叫...)
然后这样操作:
             右键点我的电脑--&gt;管理--&gt;展开'服务和应用程序'--&gt;internet信息服务--&gt;找到你共享的目录--&gt;右键点击属性 --&gt;点击'配置'--&gt;
映射下面 --&gt;找到.aspx的可执行文件路径 复制路径--&gt;粘贴路径--&gt;扩展名为&quot;.html&quot;--&gt;然后把检查文件是否存在的勾去掉 这样就可以了

引用 ActionlessForm.dll 文件，是因为当页面中有Post数据（如Post文本）。那么这时重写后的URL就会变为：http://localhost/Test/2004/12/News.aspx?ID=12 真实的 url,露出原始的地址了，这显然是不完善的，

附：为什么URL就会变为：http://localhost/Test/2004/12/News.aspx?ID=12
其实很简单，因为在web.config中有这样的一句：
&lt;SendTo&gt;~/Default.aspx?ID=$2&lt;/SendTo&gt;
在没有替换form之前，你查看页面的源码就可以看到，你的form的Action是到（以上面的例子）：Default.aspx?ID=12
即.aspx页面最后生成的HTML是：
&lt;form id=&quot;Form1&quot; name=&quot;Form1&quot; method=&quot;post&quot; action=&quot;Default.aspx?ID=12&quot;&gt;&lt;/form&gt;

解决方述问题方法：

首先把ActionlessForm.dll拷入你的项目中的bin目录，然后在你的VS.net的项目中引用这个dll。再在你原有的（即没重写的）.aspx页面中

第一步：把这句加于代码顶部：
&lt;%@ Register TagPrefix=&quot;skm&quot; Namespace=&quot;ActionlessForm&quot; Assembly=&quot;ActionlessForm&quot; %&gt;
第二步：
&lt;form id=&quot;Form1&quot; method=&quot;post&quot; runat=&quot;server&quot;&gt;和&lt;/form&gt;
替换成：
&lt;skm:Form id=&quot;Form1&quot; method=&quot;post&quot; runat=&quot;server&quot;&gt;和&lt;/skm:Form&gt;

这样，当此页面有回发数据时，则不会跳到真实的 url 上去。

来源：http://hi.baidu.com/ucfar/blog/item/b017ca3f5524ae3470cf6c5c.html<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/apiapia/" target="_blank">布袋</a> 2010-02-12 02:49 <a href="http://www.cnblogs.com/apiapia/archive/2010/02/12/1665318.html#1764400#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:.NET伪静态使用以及和纯静态的区别</title><link>http://www.cnblogs.com/apiapia/archive/2010/02/07/1665318.html#1762352</link><dc:creator>lerit</dc:creator><author>lerit</author><pubDate>Sun, 07 Feb 2010 12:56:25 GMT</pubDate><guid>http://www.cnblogs.com/apiapia/archive/2010/02/07/1665318.html#1762352</guid><description><![CDATA[好文章！之前看见关于页面静态的文章，一般都不进来，因为自己确实不懂，什么静态，伪静态的，今天读了此文章，有了个初步的理解，多谢了@！<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/apiapia/" target="_blank">lerit</a> 2010-02-07 20:56 <a href="http://www.cnblogs.com/apiapia/archive/2010/02/07/1665318.html#1762352#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: [转贴]ASP.NET WebClient用法详解</title><link>http://www.cnblogs.com/apiapia/archive/2009/03/21/1083050.html#1483301</link><dc:creator>王昊_</dc:creator><author>王昊_</author><pubDate>Sat, 21 Mar 2009 07:43:35 GMT</pubDate><guid>http://www.cnblogs.com/apiapia/archive/2009/03/21/1083050.html#1483301</guid><description><![CDATA[学习了!<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/apiapia/" target="_blank">王昊_</a> 2009-03-21 15:43 <a href="http://www.cnblogs.com/apiapia/archive/2009/03/21/1083050.html#1483301#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: .net 2.0中GridView无限级嵌套的实现</title><link>http://www.cnblogs.com/apiapia/archive/2008/07/14/1071050.html#1254423</link><dc:creator>汗</dc:creator><author>汗</author><pubDate>Mon, 14 Jul 2008 11:37:47 GMT</pubDate><guid>http://www.cnblogs.com/apiapia/archive/2008/07/14/1071050.html#1254423</guid><description><![CDATA[写死的三级怎么能说成是无限级呢?<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/apiapia/" target="_blank">汗</a> 2008-07-14 19:37 <a href="http://www.cnblogs.com/apiapia/archive/2008/07/14/1071050.html#1254423#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: [学习]Datalist 查询结果分页、Aspnetpager、非存储过程</title><link>http://www.cnblogs.com/apiapia/archive/2008/07/11/1240813.html#1251679</link><dc:creator>布袋</dc:creator><author>布袋</author><pubDate>Fri, 11 Jul 2008 07:36:57 GMT</pubDate><guid>http://www.cnblogs.com/apiapia/archive/2008/07/11/1240813.html#1251679</guid><description><![CDATA[<br>心得：<br><br>还是用控件方便快捷多了 ！<br><br><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/apiapia/" target="_blank">布袋</a> 2008-07-11 15:36 <a href="http://www.cnblogs.com/apiapia/archive/2008/07/11/1240813.html#1251679#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: [学习]利用SqlDataAdapter Insertcommand 获取刚新增的自动编号ID值</title><link>http://www.cnblogs.com/apiapia/archive/2008/06/06/1215417.html#1220344</link><dc:creator>布袋</dc:creator><author>布袋</author><pubDate>Fri, 06 Jun 2008 15:28:14 GMT</pubDate><guid>http://www.cnblogs.com/apiapia/archive/2008/06/06/1215417.html#1220344</guid><description><![CDATA[<br />
另一种方法,不用建立SQLDATAADAPTER的<font face="Verdana" color="#000000">InsertCommand</font>,直接用SQL语句 <br />
<br />
但这种方法有个缺点,就是要过滤到 "单引号"并防止SQL注入<br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&nbsp;</span><span style="color: #008000">'</span><span style="color: #008000">sql&nbsp;=&nbsp;"Insert&nbsp;into&nbsp;[GroupTable]&nbsp;([GroupName],[GameID],[U_ID])&nbsp;values&nbsp;("</span><span style="color: #008000"><br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">'</span><span style="color: #008000">sql&nbsp;+=&nbsp;"'"&nbsp;+&nbsp;Me.GroupName.Text.Trim.ToString&nbsp;+&nbsp;"',"&nbsp;+&nbsp;Me.GameID.SelectedValue.ToString&nbsp;+&nbsp;","&nbsp;+&nbsp;wnscookies.Values("U_ID").ToString&nbsp;+&nbsp;""</span><span style="color: #008000"><br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">'</span><span style="color: #008000">sql&nbsp;+=&nbsp;");Select&nbsp;SCOPE_IDENTITY()&nbsp;as&nbsp;GroupID"</span><span style="color: #008000"><br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">'</span><span style="color: #008000">Dim&nbsp;mySqlDataAdapter&nbsp;As&nbsp;SqlDataAdapter&nbsp;=&nbsp;New&nbsp;SqlDataAdapter(sql,&nbsp;conn)</span><span style="color: #008000"><br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">'</span><span style="color: #008000">Dim&nbsp;ds&nbsp;As&nbsp;New&nbsp;DataSet</span><span style="color: #008000"><br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">'</span><span style="color: #008000">mySqlDataAdapter.Fill(ds)</span><span style="color: #008000"><br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">'</span><span style="color: #008000">Dim&nbsp;newGroupID&nbsp;As&nbsp;String&nbsp;=&nbsp;ds.Tables(0).Rows(0)("GroupID").ToString</span><span style="color: #008000"><br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">'</span><span style="color: #008000">Response.Write(newGroupID)</span></div>
<br />
<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/apiapia/" target="_blank">布袋</a> 2008-06-06 23:28 <a href="http://www.cnblogs.com/apiapia/archive/2008/06/06/1215417.html#1220344#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>
