[译] 在Web Forms 中使用ASP.NET Routing
本文将以最少的代码想你展示一下的效果:
自定义RUL而不依赖于物理文件名。
使用标记或者代码产生基于route 参数的URL 。
如何获得标记或者代码路由过来的参数。
创建Routes
void Application_Start(object sender, EventArgs e) { RegisterRoutes(RouteTable.Routes); }
我们不妨看下RouteTable 这个类的定义:
public class RouteTable { private static RouteCollection _instance = new RouteCollection(); /// <summary> /// Gets a collection of objects that derive from the <see cref="T:System.Web.Routing.RouteBase"/> class. /// </summary> /// /// <returns> /// An object that contains all the routes in the collection. /// </returns> public static RouteCollection Routes { get { return RouteTable._instance; } } static RouteTable() { } }
先添加第一个Route
routes.MapPageRoute("", "SalesReportSummary/{year}", "~/sales.aspx");
这是一个一目了然的映射。
routes.MapPageRoute("SalesRoute", "SalesReport/{locale}/{year}", "~/sales.aspx");
这个也是一样。
routes.MapPageRoute("ExpensesRoute", "ExpenseReport/{locale}/{year}/{*extrainfo}", "~/expenses.aspx", true, new RouteValueDictionary { { "locale", "US" }, { "year", DateTime.Now.Year.ToString() } }, new RouteValueDictionary { { "locale", "[a-z]{2}" }, { "year", @"\d{4}" } }); routes.MapPageRoute("ProductRoute", "ProductPage/{productname}/{*culture}", "~/product.aspx");
可以给Route 添加约束和默认值。
获得Route 参数
路由简单,获得路由过来的参数同样也很简单。
LocaleLiteral.Text = Page.RouteData.Values["locale"] == null ? "All locales" : Page.RouteData.Values["locale"].ToString(); YearLiteral.Text = Page.RouteData.Values["year"].ToString();
[译] 在Web Forms 中使用ASP.NET Routing的更多相关文章
- 如何在 ASP.Net Web Forms 中使用依赖注入
依赖注入技术就是将一个对象注入到一个需要它的对象中,同时它也是控制反转的一种实现,显而易见,这样可以实现对象之间的解耦并且更方便测试和维护,依赖注入的原则早已经指出了,应用程序的高层模块不依赖于低层模 ...
- WCF项目问题2-无法激活服务,因为它需要 ASP.NET 兼容性。没有未此应用程序启用 ASP.NET 兼容性。请在 web.config 中启用 ASP.NET 兼容性,或将 AspNetCompatibilityRequirementsAttribute.AspNetCompatibilityRequirementsMode 属性设置为 Required 以外的值。
无法激活服务,因为它需要 ASP.NET 兼容性.没有未此应用程序启用 ASP.NET 兼容性.请在 web.config 中启用 ASP.NET 兼容性,或将 AspNetCompatibility ...
- 在ASP.NET Web Forms中使用页面导出伪xls Excel表格
将数据导出为Excel表格是比较常见的需求,也有很多组件支持导出真正的Excel表格.由于Excel能打开HTML文件,并支持其中的table元素以及p之类的文本元素的显示,所以把.html扩展名改为 ...
- Asp.Net Web Forms/MVC/Console App中使用Autofac
本来简单介绍了Autofac在Asp.Net Web Forms中的应用,后来又添加了mvc.控制台应用程序中使用Autofac,详情请看源码. ASP.NET Web Forms使用Autofac, ...
- ASP.NET Web Forms的改进
虽然ASP.NET Web Forms不是vNext计划的一部分,但它并没有被忽视.作为Visual Studio 2013 Update 2的一部分,它重新开始支持新工具.EF集成和Roslyn. ...
- asp.net简述Web Forms开发模式
详情请查阅:http://www.runoob.com/aspnet/aspnet-intro.html 1.Web Forms 是三种创建 ASP.NET 网站和 Web 应用程序的编程模式中的一种 ...
- 如何把Qlik Sense嵌入到Web应用中
(此文章同时发表在本人微信公众号"dotNET开发经验谈",欢迎右边二维码来关注.) 题记:这是一个给初学者(尤其对VS不熟悉的BI工程师)的入门操作向导. Qlik Sense是 ...
- IIS URL Rewriting and ASP.NET Routing
IIS URL Rewriting and ASP.NET Routing With the release of the URL Rewrite Module for IIS and the inc ...
- ASP.NET MVC中加入Web Forms
目的 有时候在一个ASP.NET MVC项目发布之后,又需要添加动态页面,同时又不想重新在源代码中添加view,那么这时候就要用上Web Forms了. 步骤 1.在项目根目录添加一个文件夹,在文件夹 ...
随机推荐
- DEEP LEARNING WITH STRUCTURE
DEEP LEARNING WITH STRUCTURE Charlie Tang is a PhD student in the Machine Learning group at the Univ ...
- 有关基于模型的设计(MBD)一些概念和理解(zz)
http://www.matlabsky.com/thread-38774-1-1.html 本文转载于MathWorks中国高级工程师董淑成的帖子内容.为了方便阅读,对原文进行了重新整理编辑. 之前 ...
- find只查当前目录 和 -exec和xargs区别
1.find默认查找当前目录和子目录,通过maxdepth限制只查当前目录: find . -maxdepth 1 -type f -name "*.php" 2. find . ...
- input file美化
<style> a{display:inline-block; width:100px; height:40px; position:relative; overflow:hidden;} ...
- 整理时下流行的浏览器User-Agent大全
总结整理时下流行的浏览器User-Agent大全 此文章转至:http://www.360doc.com/content/12/1012/21/7662927_241124973.shtml 用于学习 ...
- linux挂载硬盘失败,报错!
剛把我的一顆硬碟 ( NTFS ) 接到 Ubuntu 桌機上. 然後要 mount 的時候,出現了下面的訊息: DBus error org.gtk.Private.RemoteVolumeMon ...
- R语言操作数据库
以下内容出自http://www.douban.com/note/172387172/ CRAN上有很多R的数据库支持包,使R能够对数据库进行读写操作.这些包有:RODBC.DBI.RMySQL.RO ...
- Spark-1.0.0 standalone分布式安装教程
Spark目前支持多种分布式部署方式:一.Standalone Deploy Mode:二Amazon EC2.:三.Apache Mesos:四.Hadoop YARN.第一种方式是单独部署,不需要 ...
- codeforces 258div2C Predict Outcome of the Game
题目链接:http://codeforces.com/contest/451/problem/C 解题报告:三个球队之间一共有n场比赛,现在已经进行了k场,不知道每个球队的胜场是多少,如三个球队的胜场 ...
- postgresql 函数demo
create or replace function refresh_product_usage() returns void as $$ declare rec record; sub_rec re ...