在ASP.NET WebForm(.NET 3.5 SP1)中使用ASP.NET路由(Routing)-第二版
2013-03-02 19:01
417 查看
看了几节asp.net mvc的教程,又回过头来反思WebForm。忽然觉得,其实WebForm也不是像我原来理解的那么糟糕;而MVC模式,也并不是像我原来想象的那么完美的。任何事物都是多面性的,这句话一点也不差。所以,在IT行业里,就是不能太完美主义。
进入正题,System.Web.Routing的确是个好东西,可以映射出各式各样好看、容易理解的URL。据说本来是给asp.net mvc 框架写的,后来以独立程序集的方式发布在于.net 3.5 下面。所以,第一个准备工作:要安装完整的.net 3.5 sp1。
第二步呢,就是创建一个基于.Net Framework 3.5的Asp.Net WebApplication吧。创建完之后,要添加对“System.Web.Routing”程序集的引用。
View Code
完了?按下F5让自己“惊喜”一下吧,哈!
当我们的UrlRoting项目发布后部署到IIS中的时候,遇到的第一个问题可能会是访问路由页面后会返回404错误!
IIS6的解决办法:选择相应的网站,在右键“属性”界面中选择“主目录”(网站)或“虚拟目录”(虚拟目录)选项卡;单击配置按钮,并在“应用程序配置”界面的“映射”选项卡的“插入通配符应用程序映射(执行顺序)”处点击“插入”,然后选择.net的isapi,通常是“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll”,去掉“确认文件是否存在”前面的勾,然后确定。
IIS7+的解决办法:在应用程序的Web.Config文件“system.webServer”节下面的modules和handlers中分别添加下面的内容,保存后重启网站即可。
modules中添加
handlers中添加
PS:
此文章原文于2011年在我的百度空间发表,重新编排后转到此处!
近期有精力会再再介绍一下设置路由参数默认值、路由约束等方面的内容。
下载DEMO
参考:
http://msdn.microsoft.com/zh-cn/library/cc668201(v=VS.90).aspx 感谢MSDN
http://deepumi.wordpress.com/2010/02/27/url-routing-in-asp-net-web-forms/ 感谢此文作者
/article/4761017.html (这篇文章中提到的方法也不错,不用自定义Page类)
进入正题,System.Web.Routing的确是个好东西,可以映射出各式各样好看、容易理解的URL。据说本来是给asp.net mvc 框架写的,后来以独立程序集的方式发布在于.net 3.5 下面。所以,第一个准备工作:要安装完整的.net 3.5 sp1。
第二步呢,就是创建一个基于.Net Framework 3.5的Asp.Net WebApplication吧。创建完之后,要添加对“System.Web.Routing”程序集的引用。
View Code
using System; using System.Web.UI; namespace UrlRoutingDemo { public partial class _Default : RoutePage { protected void Page_Load(object sender, EventArgs e) { Doit(); } void Doit() { string tmp = string.Empty; if (GetRouteValue("page") != null) { tmp = string.Format("第{0}条新闻的第{1}页", RouteValues["page"]); } else { if (GetRouteValue("id") != null) tmp = string.Format("第{0}个类别", GetRouteValue("id")); if (GetRouteValue("year") != null) tmp = string.Format("{0}年 {1}月 {2}日的新闻", RouteValues["year"], RouteValues["month"], RouteValues["day"]); if (Request.QueryString["q"] != null) tmp = "您搜索的是: " + Server.UrlDecode(Request.QueryString["q"]); } Literal1.Text = tmp; } } }
完了?按下F5让自己“惊喜”一下吧,哈!
当我们的UrlRoting项目发布后部署到IIS中的时候,遇到的第一个问题可能会是访问路由页面后会返回404错误!
IIS6的解决办法:选择相应的网站,在右键“属性”界面中选择“主目录”(网站)或“虚拟目录”(虚拟目录)选项卡;单击配置按钮,并在“应用程序配置”界面的“映射”选项卡的“插入通配符应用程序映射(执行顺序)”处点击“插入”,然后选择.net的isapi,通常是“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll”,去掉“确认文件是否存在”前面的勾,然后确定。
IIS7+的解决办法:在应用程序的Web.Config文件“system.webServer”节下面的modules和handlers中分别添加下面的内容,保存后重启网站即可。
modules中添加
<remove name="Session"/> <add name="Session" type="System.Web.SessionState.SessionStateModule" preCondition="" /> <remove name="UrlRoutingModule"/> <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule,System.Web.Routing,Version=3.5.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35" />
handlers中添加
<add name="UrlRoutingHandler" preCondition="integratedMode" verb="*" path="UrlRouting.axd" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
PS:
此文章原文于2011年在我的百度空间发表,重新编排后转到此处!
近期有精力会再再介绍一下设置路由参数默认值、路由约束等方面的内容。
下载DEMO
参考:
http://msdn.microsoft.com/zh-cn/library/cc668201(v=VS.90).aspx 感谢MSDN
http://deepumi.wordpress.com/2010/02/27/url-routing-in-asp-net-web-forms/ 感谢此文作者
/article/4761017.html (这篇文章中提到的方法也不错,不用自定义Page类)
相关文章推荐
- 认识 ASP.NET 3.5 MVC 路由 在WebForm项目中使用路由
- 认识 ASP.NET 3.5 MVC 路由 在WebForm项目中使用路由
- 初识ASP.NET 3.5 MVC 路由 在WebForm项目中使用路由
- asp.net3.5sp1WebForm使用路由
- asp.net4的webform使用路由
- 005. Asp.Net Routing与MVC 之三: 路由在MVC的使用
- ASP.NET 4.0 的新特性(2 在WebForm中使用Routing)(翻译)
- asp.net MVC 5 路由 Routing
- asp.net identity 2.2.0 在WebForm下的角色启用和基本使用(四)
- 返璞归真asp.net mvc 1.0(2) - 路由(System.Web.Routing)
- Apress最新推出精品:Pro ASP.NET 3.5 in C# 2008(第二版)
- Asp.Net MVC 路由引擎 Routing
- 在ASP.NET 3.5中使用新的ListView控件
- .NET/ASP.NET Routing路由(深入解析路由系统架构原理)
- 使用ASP.NET 3.5 Extensions管理浏览器历史:使用客户端
- sql2008安装提示报错,.必须使用"角色管理工具"安装或配置Microsoft.net.framework 3.5 sp1
- HighCharts图表控件在ASP.NET WebForm中的使用总结(全)
- ASP.net 的URL路由选择(System.Web.Routing.dll)
- ASP.NET WebForm也玩强类型URL调用之二:PageMethods的基本使用
- 返璞归真 asp.net mvc (2) - 路由(System.Web.Routing)