文章来源: 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

转载于:https://www.cnblogs.com/slark/p/mvc-5-get-started-route.html

ASP.NET MVC 5 入门教程 (3) 路由route相关推荐

  1. ASP.NET MVC 5 入门教程 (2) 控制器Controller

    原文:ASP.NET MVC 5 入门教程 (2) 控制器Controller 文章来源: Slark.NET-博客园 http://www.cnblogs.com/slark/p/mvc-5-get ...

  2. ASP.NET MVC5 + EF6 入门教程 (5) Model和Entity Framework

    文章来源: Slark.NET-博客园 http://www.cnblogs.com/slark/p/mvc-5-ef-6-get-started-model.html 上一节:ASP.NET MVC ...

  3. ASP.NET Core MVC 从入门到精通之路由

    随着技术的发展,ASP.NET Core MVC也推出了好长时间,经过不断的版本更新迭代,已经越来越完善,本系列文章主要讲解ASP.NET Core MVC开发B/S系统过程中所涉及到的相关内容,适用 ...

  4. ASP.NET MVC 5 学习教程:添加控制器

    ASP.NET MVC 5 学习教程:添加控制器 原文 ASP.NET MVC 5 学习教程:添加控制器 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控 ...

  5. ASP.NET MVC 5 入门指南汇总

    原文:ASP.NET MVC 5 入门指南汇总 经过前一段时间的翻译和编辑,我们陆续发出12篇ASP.NET MVC 5的入门文章.其中大部分翻译自ASP.NET MVC 5 官方教程,由于本系列文章 ...

  6. ASP.NET MVC 5 学习教程:Details 和 Delete 方法详解

    ASP.NET MVC 5 学习教程:Details 和 Delete 方法详解 原文 ASP.NET MVC 5 学习教程:Details 和 Delete 方法详解 在教程的这一部分,我们将研究一 ...

  7. [ASP.NET MVC2 系列] ASP.NET MVC 之如何创建自定义路由约束

     [ASP.NET MVC2 系列]      [ASP.NET MVC2 系列] ASP.Net MVC教程之<在15分钟内用ASP.Net MVC创建一个电影数据库应用程序>      ...

  8. ASP.NET MVC Music Store教程(2):控制器

    ASP.NET MVC Music Store教程(2):控制器 转自http://firechun.blog.163.com/blog/static/3180452220110272197830/ ...

  9. ASP.NET MVC 5 学习教程:添加查询

    起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连接字符串 通过控制器访问模型的数据 生成的代码详解 使用 SQL Se ...

最新文章

  1. 《人件集》阅读笔记第一篇
  2. 【导出Excel】Vue实现导出下载Excel文件(blob文件流)--亲测可用
  3. Python中的注释
  4. redis 获取服务器信息,StringRedisTemplate获取redis信息
  5. numpy中newaxis的用法
  6. linux基础-0.0绝对路径与相对路径
  7. Java servlet项目里的web.xml
  8. Jquery mobile 解决IOS9selectli闪退问题
  9. PHP 二分查找(详细)
  10. 6个必须掌握的基础配置 - [webpack第一篇]
  11. Yii2如何使用存取控制过滤器(ACF)
  12. 红外遥控接收头 的引脚参数
  13. 聊聊Web 3为什么可以解决数据使用中存在的难题
  14. 2019春运抢票攻略:凭借单身三十年的手速干死一批黄牛党
  15. stm32 I2C总线入门笔记
  16. 单片机常用芯片总结(一)——LCD1602液晶屏
  17. android窗帘拉开动画,H5+CSS3窗帘拉开收起动画特效源码
  18. CDH6.3.1安装指南
  19. gitlab Enter passphrase for key
  20. 拼多多开店步骤是什么?在拼多多如何开店?

热门文章

  1. 求一个正整数是哪几个正整数相加的和,这些数不能相同
  2. nuc972的ramfs的配置yaffs2,ubi文件系统
  3. [react-router] 请你说说react的路由是什么?
  4. 前端学习(2928):昨日回顾
  5. [vue] 说说你对单向数据流和双向数据流的理解
  6. [vue] vue和angular有什么区别呢?
  7. 工作288:跨组件传值
  8. 工作75::一直报404
  9. 前端学习(2390):登录模块介绍
  10. 前端学习(2028)vue之电商管理系统电商系统之展示物流进度