在这篇教程里,将向你介绍每个ASP.NET MVC程序都有的重要特性,叫做 ASP.NET Routing。 ASP.NET Routing 模块负责将传入的浏览器请求映射到特定的MVC控制器actions。教程最后,你会理解标准路由表是如何将请求映射到控制器action的。
使用默认路由表
新建 ASP.NET MVC 程序,它已经配置好使用 ASP.NET Routing了。 ASP.NET Routing 在两个地方被创建。
第一个, ASP.NET Routing 在程序的Web配置文件(Web.config 文件)中被启用。配置文件中有4个与路由相对的节点:system.web.httpModules 节, system.web.httpHandlers 节, system.webserver.modules节,和 system.webserver.handlers节。 小心不要删除这些节点因为没有这些节点路由就不能再工作了。
第二个, 也是最重要的一个,路由表在程序的 Global.asax 文件中被创建。 Global.asax 文件时一个特殊的文件,它包括ASP.NET 程序生命周期事件的处理程序。路由表在Application Start 事件之中被创建。
代码1中包含了ASP.NET MVC程序的默认 Global.asax 文件。
代码1 – Global.asax.cs
当MVC程序首次启动时, Application_Start() 方法被调用。相反,这个方法调用 RegisterRoutes()方法。 RegisterRoutes() 方法创建路由表。
默认路由表包含一个简单的路由(名为Default)。默认路由将URL的第一段映射到控制器名称,第二段映射到控制器action,第三段映射到名为 id 的参数。
想象你输入以下URL到你的浏览器地址栏中:
/Home/Index/3
默认路由将此URL映射到以下参数:
当你请求此 URL /Home/Index/3, 以下代码将被执行:
HomeController.Index(3)
默认路由度这三个参数都包括了默认值。如果你不提供controller,那么controller参数默认为 Home。 如果你不提供action,那么action默认为 Index。最后,如果你不提供id, id参数默认为空字符串。
让我们来看看一些默认路由如何映射URL到控制器action的例子。想象你输入以下URL到你的浏览器地址栏中:
/Home
由于默认路由的默认值,这个 URL 会调用 HomeController类的Index() ,如代码2所示。
代码2 – HomeController.cs
在代码2中,HomeController 类包括一个名为 Index() 的方法,它接受一个名为Id的简单参数。 URL /Home使得 Index() 方法在Id参数的值为空字符串的情况下被调用。
由于MVC框架调用控制器actions的方式,URL /Home 也匹配代码3中HomeController类的 Index() 方法。
代码3 – HomeController.cs (无参Index action)
代码3中的 Index() 方法不接受任何参数。 URL /Home 会使得 Index() 方法被调用。 URL /Home/Index/3 也会调用这个方法(Id 被忽略)。
URL /Home 还匹配代码4中HomeController类的 Index() 方法。
代码4 – HomeController.cs (带有可空类型参数的Index action)
在代码4中, Index() 方法具有一个整形参数。由于该参数为可空参数(值可以为null),Index() 方法可以被调用而不产生任何错误。
最后,用URL /Home来调用代码5中的 Index() 方法会导致异常,因为参数不是一个可空参数。如果你试图调用Index()方法那么就会得到图1所示的错误。
代码5 – HomeController.cs (带有Id参数的Index action)
另一方面,URL /Home/Index/3 在代码5中的Index控制器中就会运行良好。请求 /Home/Index/3 使得 Index() 方法带上值为3的Id参数被调用。
总结
这篇教程的母的是要向你简单介绍 ASP.NET Routing。我们考查了由ASP.NET MVC程序得到的默认路由表。你学到了默认路由如何将URL映射到控制actions。
原文地址:http://www.asp.net/learn/mvc/tutorial-05-cs.aspx
分享到:
相关推荐
ASP.NET MVC4 CMS的视图通常由Razor语法编写,这种语法允许开发者在HTML中嵌入C#代码,实现动态内容渲染。开发者可以根据需求创建各种布局和部分视图,以实现灵活的页面结构。 **控制器(Controller)**: 控制器...
在Asp.Net MVC中,路由(Routing)是连接URL请求和控制器行为的关键机制。你可以自定义路由规则,使得URL更加友好且易于理解。例如,通过设置路由,你可以将`/Home/About`映射到HomeController的About方法。 接下来...
- **路由(Routing)**:ASP.NET MVC使用路由系统来确定如何将HTTP请求映射到控制器和动作。默认路由配置可以按照`/{controller}/{action}/{id}`模式解析,但可以根据需要自定义。 - **动作过滤器(Action Filters...
4. **路由(Routing)**:ASP.NET MVC的路由系统允许开发者定义URL模式,这些模式决定了如何将HTTP请求映射到控制器的动作。通过自定义路由,可以创建更加友好和可定制的URL结构。 5. **依赖注入(Dependency ...
在ASP.NET MVC中,模型通常由C#类组成,这些类可以映射到数据库表,也可以包含验证规则。 2. **视图(View)**: 视图是用户界面,负责呈现数据。它通常由Razor视图引擎生成的HTML代码组成。开发者可以通过`@model`...
### AngularJS 开发 ASP.NET MVC #### 知识点概览 - **AngularJS与ASP.NET MVC结合的优势** - **AngularJS的特点与优势** - **AngularJS的基本概念(如数据绑定、指令等)** - **如何在ASP.NET MVC项目中引入...
4. **路由(Routing)**:ASP.NET MVC的路由系统是核心组件之一,它决定了URL请求如何映射到控制器和动作。源代码中的路由配置通常位于`Global.asax.cs`文件的`RegisterRoutes`方法中。通过自定义路由规则,开发者...
4. **路由(Routing)**:ASP.NET MVC4使用路由系统来解析URL并将其映射到控制器和动作。默认的路由配置在Global.asax文件的`RegisterRoutes`方法中,可以通过自定义路由规则来控制URL结构。 5. **验证(Validation...
在Asp.net MVC 3中,Razor视图引擎允许开发者使用C#语法编写视图,这使得视图更加简洁且易于理解。在ExtShop项目中,各种商品列表、购物车、订单详情等页面都是由相应的视图呈现的。 3. **控制器(Controller)**:...
4. **路由(Routing)**:ASP.NET MVC2的路由系统允许自定义URL模式,使URL更符合语义化。面试可能包括如何定义和配置路由规则,以及如何通过路由参数传递数据。 5. **验证(Validation)**:在ASP.NET MVC2中,...
ASP.NET MVC 5 contains a number of advances over previous versions, including the ability to define routes using C# attributes and the ability to override filters. The user experience of building MVC ...
4. **路由(Routing)**:ASP.NET MVC4的路由系统允许开发者定义URL模式,以便将HTTP请求映射到特定的控制器和动作。这提供了更加友好的URL结构,有助于SEO优化。 5. **辅助方法(Html Helpers)**:这些是预定义的...
4. **路由(Routing)**:ASP.NET MVC4使用URL路由机制,允许开发者定义自定义URL模式,使URL更具描述性和可读性。路由配置在`Global.asax.cs`文件的`RegisterRoutes`方法中完成。 5. ** Areas(区域)**:大型项目...
**Asp.net Mvc 1.0** Asp.NET MVC(Model-View-Controller)1.0是微软在2009年推出的一款用于构建可测试、高性能Web应用程序的框架。这个版本是Asp.NET MVC系列的开端,为开发人员提供了一种与传统的ASP.NET Web ...
- **路由(Routing)**:ASP.NET MVC的路由系统允许自定义URL模式,使URL更易于理解和使用。在这个实例中,可能定义了如`/Comment/Index`和`/Comment/Create`的路由,分别对应查看留言列表和创建新留言的页面。 - *...
4. Routing:路由是ASP.NET MVC Core中关键的一部分,它负责将URL请求映射到对应的Controller和Action。开发者可以在`Startup.cs`文件中配置路由规则,自定义URL结构。 5. Dependency Injection (DI):ASP.NET MVC ...
路由(Routing)是ASP.NET MVC的核心组成部分,它定义了URL与控制器操作之间的映射规则。默认的路由配置会将URL的段解析为控制器名、操作名和参数,但你可以自定义路由规则以满足复杂的应用需求。 模型绑定(Model ...
4. **路由(Routing)**: ASP.NET MVC使用路由机制来决定哪个控制器和动作方法应该处理特定的HTTP请求。开发者可以在Global.asax文件中配置路由规则,或者在其他地方注册自定义路由。 5. **过滤器(Filters)**: ...
ASP.NET MVC2是一款基于微软.NET Framework的开源Web应用程序框架,设计用于构建可维护性和测试性的动态网站。这个框架是ASP.NET平台的一个扩展,它引入了模型-视图-控制器(Model-View-Controller, MVC)架构模式,...
2. **路由(Routing)**:ASP.NET MVC4中的路由系统允许开发者自定义URL模式,以提供更友好的URL结构。在酒吧管理系统中,路由可能配置为如`/Bar/Drinks`这样的路径,表示访问酒吧的饮品列表。 3. **控制器...