zoukankan      html  css  js  c++  java
  • ASP.NET MVC 5 入门教程 (3) 路由route

    文章来源: Slark.NET-博客园 http://www.cnblogs.com/slark/p/mvc-5-get-started-route.html

    上一节:ASP.NET MVC 5 入门教程 (2) 控制器Controller

    下一节:ASP.NET MVC 5 入门教程 (4) View和ViewBag

    源码下载:点我下载

    上一节我们讲了如何创建一个控制器,本节我们来讨论如何通过路由来访问控制器及其Action。

    那么问题来了,怎么写url能访问到我想要访问的控制器呢?

    要想正确访问路由器,就得知道路由规则。它被写在解决方案的App_Start文件夹下的RoutConfig.cs文件中。顾名思义,这是路由配置文件。代码如下。

    using System.Web.Mvc;
    using System.Web.Routing;
    
    namespace SlarkInc
    {
        public class RouteConfig
        {
            public static void RegisterRoutes(RouteCollection routes)
            {
                routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    
                routes.MapRoute(
                    name: "Default",
                    url: "{controller}/{action}/{id}",
                    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
                );
            }
        }
    }

    代码中标记出的两行就是路由规则的关键所在。

    第一行的意思是通过 “http://主机名:端口号/控制器名/Action名/参数id” 可以调用这个控制器的Action并且这个Action带有参数id。

    我们先来创建一个这样的控制器。

    打开解决方案下的Controllers文件夹下的FirstController.cs文件。写入如下代码。

    using System.Web.Mvc;
    
    namespace SlarkInc.Controllers
    {
        public class FirstController : Controller
        {
            public string Index(string id)
            {
                return "This is first controller index page.<br/> Your Id is " + id;
            }
    
            public string Another()
            {
                return "This is first controller another page";
            }
        }
    }

    代码中标记的部分就是我们想要访问的Action。

    按F5启动程序。

    我们要访问的是First控制器下的Index Action并且参数是id。

    代入公式:“http://主机名:端口号/控制器名/Action名/参数id”

    得 http://localhost:57231/first/index/2

    结果如下:

    Ok。

    下面来看RoutConfig.cs文件标记出的第二行。如下:

    url: "{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }

    第二行的意思是如果不写controller那么controller就默认是Home。确定controller之后如果不写action则action就默认是Index。id = UrlParameter.Optional表示id可以有也可以没有。比如调用First控制器的Index Action时就有参数,此时写上id。如果调用First控制器的Another Action,没有参数就不写。

    那么url就是这样: http://localhost:57231/first/another

    运行结果如下:

    现在我想让程序一启动就显示FirstController的Index Action,这样测试起来方便。怎么办?

    把FirstController 和Index Action都设成默认就行啦。

    url: "{controller}/{action}/{id}",
    defaults: new { controller = "First", action = "Index", id = UrlParameter.Optional }

    运行结果如下。id没给,所以是null,这里就没有Id:

    下一步我们就可以着手创建View啦。

    下一节:ASP.NET MVC 5 入门教程 (4) View和ViewBag

  • 相关阅读:
    关于《大道至简-软件工程实践者的思想》的读书笔记(二)
    关于《大道至简-软件工程实践者的思想》的读书笔记(一)
    Android源码项目目录结构
    Android源码目录结构详解
    项目阶段总结
    站立会议07(二期)
    站立会议06(二期)
    站立会议05(二期)
    站立会议04(二期)
    站立会议03(二期)
  • 原文地址:https://www.cnblogs.com/slark/p/mvc-5-get-started-route.html
Copyright © 2011-2022 走看看