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

  • 相关阅读:
    ADB命令大全
    Backup your Android without root or custom recovery -- adb backup
    Content portal for Pocketables Tasker articles
    Is there a way to detect if call is in progress? Phone Event
    Tasker to proximity screen off
    Tasker to detect application running in background
    Tasker to create toggle widget for ES ftp service -- Send Intent
    Tasker to proximity screen on
    Tasker to answer incoming call by pressing power button
    Tasker to stop Poweramp control for the headset while there is an incoming SMS
  • 原文地址:https://www.cnblogs.com/slark/p/mvc-5-get-started-route.html
Copyright © 2011-2022 走看看