IIS URL Rewriting 和 ASP.NET routing(下)
在IIS URL Rewriting 和 ASP.NET routing(上)中,我们针对IIS URL Rewriting 和 ASP.NET routing的理念和功能分别进行分析并进行对比,在清楚了这些基本原理和异同之后,我们该如何在应用中挑选合适的URL优化方案呢?在本文中,我们将对此进行探讨分析,并例举几种两者协同应用的案例。
本文翻译自IIS官方网站,针对国内惯用的术语进行了部分调整。
我们该如何选择?
首先,如果我们的Web应用程序有任何除了ASP.NET之外的动态网页技术,那么选择是绝对明显的:用IIS URL重写模块(IIS URL-rewrite module)。否则的话,主要判断规则如下:
如果我们的ASP.NET Web应用程序使用了ASP.NET MVC 或者 ASP.NET Dynamic Data 技术的话,请使用ASP.NET路由。我们的应用程序URL优化过程将从原生支持中获益(ASP.NET MVC 和ASP.NET Dynamic Data直接包含ASP.NET Routing)。早期的ASP.NET 路由不支持WebForm,而目前的版本已经支持标准的Web Form应用程序了。详见此地。
如果我们是基于一个已有的ASP.NET网站,而希望尽量不去更改它的话,请使用URL重写模块。因为URL重写模块能够在不更改现有程序的基础上对网站提供“用户友好”“搜索引擎友好”的URL。同样,它也允许我们创建重定向规则,用来重定向搜素引擎的爬虫到新的URL去。
然而在实践中这两种技术并不是只能选择一个,他们往往还可以相辅相成。在接下来的章节中,我们将概述几个协同使用ASP.NET路由和URL重写模块的案例。
为网站强制实施标准的URL
举个例子,比如我们想强制使用http://www.mysite.com/home/about 来替代 http://mysite.com/Home/About。 当客户端请求一个不符合标准格式的URL时,客户端奖杯跳转到一个符合标准格式的URL。在这种情况下,我们可以使用URL重写模块来强制URL跳转,而使用ASP.NET 路由来选择一个handler来处理所请求的URL路径。
下面的代码展示了这个案例中可能用到的URL重写模块配置代码:
<rewrite>
<rules>
<rule name="Enforce canonical hostname" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" negate="true" pattern="^www\.mysite\.com$" />
</conditions>
<action type="Redirect" url="http://www.mysite.com/{R:1}" redirectType="Permanent" />
相关文档:
在web.config中修改修改属性
1:<configSections><configSections>中加下面代码
<configSections>
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral ......
由于项目的需求图表显示数据,今天在网上找了一天,终于找到一个不错的控件----ZedGraph,它支持asp,asp.net,vc.
现在最新的版本是5.0,些版本支持 .NET 2.0.5.0版本以下的支持.NET 1.1
我们现在的项目是.NET1.1开发的.我在网上找了一天也没有发现一个例子,下面我将介绍下其在ASP.NET下的用做WEB控件的用法
......
1,在web服务器上安装Oracle数据库客户端,这是连接Oracle数据库的基础(但,不一定是必须的)。
2,在客户端的Net Manager 中进行配置服务的名称,配置如图(这一点非常的重要以后的链接全都在这个服务名称的基础上进行的)
3,ASP链接服务的链接字符串和方法如下:
<%
connstr= "Provider=MSDAORA.1;Password=***; ......
在开发中经常可以碰到类似的问题: 想通过一个树父节点的TreeNodeCheckChanged 事件( 前提是设置TreeView 的CheckBox 可见), 来选择或反选择全部的子节点, 来实现自己的要实现的操作功能. 于是我们很正常的思维促使我们去寻找TreeView 的的类似于 ” CheckChanged ” 的事件, 很容易我们找到了这个事件 ” ......
jquery通过post传递数据到服务器(不使用插件):
<html>
<head>
<title>Untitled Page</title>
<script language="javascript" type="text/javascript" src="js/jquery-1.3.1.js"></script>
<script language="ja ......