ASP.NET MVC Routing概述 C#描述

ASP.NET Routing模块的责任是将传入的浏览器请求映射为特有的MVC controller actions。

使用 默认的Route Table

当你创建一个新的ASP.NET MVC应用程序,这个应用程序已经被配置用来使用ASP.NET Routing。 ASP.NET Routing 在2个地方设置。第一个,ASP.NET Routing 在你的应用程序中的Web配置文件( Web.config文件)是有效的。在配置文件中有4个与routing相关的代码片段:system.web.httpModules代码段 ,system.web.httpHandlers 代码段,system.webserver.modules代码段以及 system.webserver.handlers代 码段。千万注意不要删除这些代码段,如果没有这些代码段,routing将不再运行。第二个,更重要的,route  table在应用程序的Global.asax文件中创建。这个Global.asax文件是一个特殊的文件,它包含ASP.NET 应用程序生命周期events的event handlers。这个route  table在应用程序的起始event中创将。

在Listing 1中包含ASP.NET MVC应用程序的默认Global.asax文件.

Listing 1 - Global.asax.cs

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/--> 1 public class MvcApplication : System.Web.HttpApplication
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
            routes.MapRoute(
                "Default", // 路由名称
                "{controller}/{action}/{id}", // 带有参数的 URL
                new { controller = "Home", action = "Index", id = UrlParameter.Optional } // 参

数默认值
            );

        }

        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            RegisterRoutes(RouteTable.Routes);
        }
    }

当一个MVC应用程序第一个启动,Application_Start() 方法被调用,这个方法反过来调用 RegisterRoutes() 方法。

这个默认的route  table包含一个单一的route。这个默认的route将 url的第一个段映射为一个controller名称,url的第二个段映射为一个controller  action,第三个段映 射为命名为id的参数。

假如,你在网页浏览器的地址栏中键入下面的url:/Home/Index/3,这个默认的 route将这个url映射为下面的参数:

controller = Home     controller名称

action = Index          controller  action

id = 3                       id的参数

当你请 求/Home/Index/3这样的url,下面的代码将执行。HomeController.Index(3)

这个默认的route包含3个 默认的参数。如果你没有提供一个 controller,那么 controller默认为Home。同样,action默认为Index,id 参数默认为空字符串。

让我们来看一些关于默认的route怎么映射urls为controller  actions的例 子。假如你在你的浏览器地址栏中输入如下的url:/Home, 由于这些默认的route参数有一些相关的默认值, 键入这样的URL,将导致HomeController类的Index()方法(如Listing 2)被调用。

Code 

highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 

1 namespace MvcRoutingApp.Controllers
{
    [HandleError]
    public class HomeController : Controller
    {
        public ActionResult Index(string id)
        {
            ViewData["Message"] = "欢迎使用 ASP.NET MVC!";

            return View();
        }

        public ActionResult About()
        {
            return View();
        }
    }
}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索c# .net mvc
, controller
, 参数
, 应用程序
, 代码
, route
, C# MVC 
, routing
, 一个
默认controller
,以便于您获取更多的相关知识。

时间: 2024-09-30 12:01:23

ASP.NET MVC Routing概述 C#描述的相关文章

一起谈.NET技术,ASP.NET MVC Routing概述

ASP.NET Routing模块的责任是将传入的浏览器请求映射为特有的MVC controller actions. 使用默认的Route Table 当你创建一个新的ASP.NET MVC应用程序,这个应用程序已经被配置用来使用ASP.NET Routing. ASP.NET Routing 在2个地方设置.第一个,ASP.NET Routing 在你的应用程序中的Web配置文件(Web.config文件)是有效的.在配置文件中有4个与routing相关的代码片段:system.web.ht

ASP.NET MVC Routing概述

ASP.NET Routing模块的责任是将传入的浏览器请求映射为特有的MVC controller actions. 使用默认的Route Table 当你创建一个新的ASP.NET MVC应用程序,这个应用程序已经被配置用来使用ASP.NET Routing. ASP.NET Routing 在2个地方设置.第一个,ASP.NET Routing 在你的应用程序中的Web配置文件(Web.config文件)是有效的.在配置文件中有4个与routing相关的代码片段:system.web.ht

ASP.NET MVC 3 概述

原文地址:http://www.asp.net/mvc/mvc3 导言 ASP.NET MVC3 在 ASP.NET MVC 1 和 2 的基础上,增加了大量的特性,使得代码更加简化,并且可以深度扩展.这篇文章提供包含在此次发布中的许多新特性的说明,分为以下部分: Razor 视图引擎 支持多视图引擎 Controller 改进 JavaScript 和 Ajax Model 验证的改进 依赖注入 Dependency Injection 的改进 其他新特性 Razor 视图引擎 ASP.NET

ASP.NET MVC 3 概述“.NET研究”

原文地址:http://www.asp.net/mvc/mvc3 导言 ASP.NET MVC3 在 ASP.NET MVC 1 和 2 的基础上,增加了大量的特性,使得代码更加简化,并且可以深度扩展.这篇文章提供包含在此次发布中的许多新特性的说明,分为以下部分: Razor 视图引擎 支持多视图引擎 Controller 改进 JavaScript 和 Ajax Model 验证的改进 依赖注入 Dependency Injection 的改进 其他新特性 Razor 视图引擎 ASP.NET

一起谈.NET技术,ASP.NET MVC 3 概述

原文地址:http://www.asp.net/mvc/mvc3 导言 ASP.NET MVC3 在 ASP.NET MVC 1 和 2 的基础上,增加了大量的特性,使得代码更加简化,并且可以深度扩展.这篇文章提供包含在此次发布中的许多新特性的说明,分为以下部分: Razor 视图引擎 支持多视图引擎 Controller 改进 JavaScript 和 Ajax Model 验证的改进 依赖注入 Dependency Injection 的改进 其他新特性 Razor 视图引擎 ASP.NET

ASP.NET MVC Routing Debugger路由调试工具

官网地址:http://blog.csdn.net/sgear/article/details/6789882 To  use this, simply download the following zip file and place the assembly inside of it into your bin folder. Then in your Global.asax.cs file add one line to theApplication_Start method (in bo

自学MVC看这里——全网最全ASP.NET MVC 教程汇总

MVC架构已深得人心,微软也不甘落后,推出了Asp.net MVC.小编特意整理博客园乃至整个网络最具价值的MVC技术原创文章,为想要学习ASP.NET MVC技术的学习者提供一个整合学习入口.本文从Why,What,How三个角度整理MVC 的学习资源,让学习者第一时间找到最有价值的文章,获取最彻底的ASp.NET MVC 框架知识,Let's go!   1. Why :为什么需要ASP.NET MVC 本章主要为大家汇总了为什么学习Asp.net MVC替代WebForms,产生ASP.N

asp.net mvc 3 的资料与参考

asp.net mvc 3的官方站点,这里有很多的指导和说明,视频 http://www.asp.net/mvc http://www.asp.net/mvc/mvc3 blog和重要的站点 http://weblogs.asp.net/scottgu/ ASP.NET MVC 3 概述 http://www.cnblogs.com/haogj/archive/2011/01/15/1936473.html Razor语法 ASPNETWebPagesWithRazorSyntax http:/

学习 ASP.NET MVC (第三回)实战篇

本系列文章导航 学习 ASP.NET MVC (第一回)理论篇 学习 ASP.NET MVC (第二回)实战篇 学习 ASP.NET MVC (第三回)实战篇 学习 ASP.NET MVC (第四回)实战篇 学习 ASP.NET MVC (第五回)理论篇 创建Controllers和Views我们再次回顾下ASP.NET MVC的基本工作流程:URL-->Controller(会执行一个方法Action)-->从数据库中获取一个Model对象-->将Model作为ViewData传递给V