Welcome 微信登录

首页 / 网页编程 / ASP.NET / ASP.NET MVC框架 (第二部分): URL路径选择

ASP.NET MVC框架 (第二部分): URL路径选择2011-07-19 blog.joycode.com Sailing第一部分的扼要简述

在这个系列的第一部分里,我们创建了一个电子商务网站,呈示了三类URL:

URL格式行为URL例子
/Products/Categories浏览所有的产品分类/Products/Categories
/Products/List/Category列出一个分类中的产品/Products/List/Beverages
/Products/Detail/ProductID显示一个特定产品的细节/Products/Detail/34

我们通过创建象下面这样一个ProductsController类来处理这些URL:

在把上面这个类加到我们的应用中后,ASP.NET MVC框架就会把进来的URL自动导向到我们的控制器上的适当的action方法来处理请求。

在今天的贴子里,我们将深入讨论这个URL映射是如何发生的,以及探讨我们可以在ASP.NET MVC框架中利用的更高级的路径选择(routing )场景。我还将示范你如何可以轻松地单元测试URL路径选择场景。

ASP.NET MVC URL路径选择系统都做些什么?

ASP.NET MVC框架包括了一个很灵活的URL路径选择系统,它允许你在应用中定义URL映射规则。路径选择系统有2个主要目的:

把进来的URL映射到应用,并把它们做导向,这样,正确的Controller和Action方法执行来处理这些请求

构建可以用来回调Controllers/Actions的输出到客户端的URL(例如,表单提交, <a href=""> 链接, 和 AJAX 调用等 等)

能够使用URL映射规则来同时处理进来的和输出的URL场景给应用代码添加了许多灵活性。这意味着,如果我们以后想改变应用的URL结构的 话(譬如,把 /Products 改名为 /Catalog),我们可以修改应用层次的一套映射规则即可,而不需要改动控制器或视图模板中的任何代码。

默认的ASP.NET MVC URL路径选择规则

在默认情形下,当你使用Visual Studio用ASP.NET MVC Web Application模板来创建一个新项目时,它会往项目里添加一个ASP.NET Application类。这是在Global.asax后台代码中实现的: