原文:Asp.Net MVC5入门学习系列②

添加一个Controller(控制器)

因为我们用的是Asp.Net MVC,MVC最终还是一套框架,所以我们还是需要遵循它才能玩下去,或者说是更好的利用来便于我们的开发,要是对MVC概念还有点模糊的,可以去我以前写的第一话 Asp.Net MVC 3.0【Hello World!】里开始部分就对此做了阐述。假定所有跟我一起学的都了解MVC的这么一个概念,我们就开始下面的步骤了:

现在我们开始添加一个Controller,具体如下:

我们选择创建一个空的Controller,然后点击确定:

这里自带了一个返回View()的动作(action),说的绕口就是说这里VS在给我们创建Controller的时候会生产一个返回试图的方法,该方法没有任何操作动作就是接受HTTP GET请求HelloWorld过来执行该方法。要是你细心的话你会发现在VS我们创建HelloWorldController同时,它默默的在Views文件下为我们默默的创建了一个HelloWorld的文件夹,这样V  C在某种机制上是不是对应起来了,这也是一种框架约定。

OK,我们简单的玩下这个我们创建好的Controller,具体代码如下:

其实通过上面这个过程我们就可以在此清楚的看到MVC强大的路由机制,这个我好像也说过好多次了o(^▽^)o,不过MVC就是在这个地方强势耶,所以想学好MVC的话还是要多去了解下它路由机制方面的东西,本菜鸟也是入门就不说的那么高深了,来看看VS在给我们创建应用程序的时候,框架自身配置的路由,大多数情况这个自身配置路由是够我们的应用开发的。来看看项目的RouteConfig.cs配置文件,他位于项目的位置如下:

其实我们刚才模拟HTTP请求HelloWorldController的动作就经典的执行了下上面配置文件的配置。当我们请求HelloWorld时路由机制会将我们的请求映射到HelloWorldController类(控制器),根据上面配置文件配置描述的话,第二个URL片段上应该是action(动作/方法)也就是方法名,当然你会问我刚才就没有访问Index这个方法,为什么结果会是index方法的字符串怎么不是welcome方法的返回的字符串。这里呢我就个人观点说下,不对的话还望各位朋友指教!因为我们没有给它指定Controller里action的名字(方法),所以这里路由机制会字段检索默认方法,这里就检索到index这个方法。同时这也是为什么我们每次创建一个Controller的时候它都会自动给我们创建一个默认的动作方法,这个地方或许就是它的作用之一吧。。。。。。好了就啰嗦这么多,然后我们在继续模拟HTTP请求下我们的第二个方法,看能不能返回我们想要的字符串,请求访问结果如下:

哈哈当然是第二了,这里有人会问为什么,因为第二指定了Action名称(方法名称)所有路由机制根据你提供的方法名字就直接去找了,而第一个路由机制有一个检索或者说检查的动作在里面可能在细微上就要稍微慢于第二个方法了,我们看看第二的工作人员工具里返回的信息如下:

我们可以把我们的welcome()方法稍稍修改下,修改如下:

我们现在开始来配置这么一条路由机制,在RouteConfig.cs里面配置哦,可不要随便拉个类以配置,随便配置的话也可以,那就是你要想办法让路由机制认识你的配置就行,我们就在RouteConfig.cs里面配置我们的路由机制,配置如下:

然后我们在次模拟HTTP请求,请求结果如下:

OK,今天就暂时先分享到这里吧o(^▽^)o!

Asp.Net MVC5入门学习系列②的更多相关文章

  1. Asp.Net MVC5入门学习系列③

    原文:Asp.Net MVC5入门学习系列③ 添加一个视图(View) 接着上篇的入门系列,上面解说添加一个简单Controller(控制器),这里我们简单的在来添加一个View(视图)来展示我们Co ...

  2. Asp.Net MVC5入门学习系列①

    原文:Asp.Net MVC5入门学习系列① 现在直接开始MVC5的学习系列,学习资源来自Micrsoft. 开始使用Asp.Net MVC 5 打开Visual Studio 2013,然后新建一个 ...

  3. Asp.Net MVC5入门学习系列⑦

    原文:Asp.Net MVC5入门学习系列⑦ 接着上篇结尾所说,如果开发中刚才遇到Model需要添加或者减少字段/属性的话,但是刚好你也利用EF的Code frist通过Model生存的数据库,这时改 ...

  4. Asp.Net MVC5入门学习系列⑤

    原文:Asp.Net MVC5入门学习系列⑤ 检查VS生产的编辑方法和编辑窗体 前面我们一步使用强类型,然后创建Controller(控制器)的时候,VS默认已经给我们把CURD都简单的实现了.这篇的 ...

  5. Asp.Net MVC5入门学习系列⑥

    原文:Asp.Net MVC5入门学习系列⑥ 接着上次的篇幅,我们这篇手动来写一个查询的流程代码! 搜索/查询 流程功能的实现 那现在要做搜索(查询)功能我们第一步应该做什么呢!第一次是不是我们应该去 ...

  6. Asp.Net MVC5入门学习系列④

    原文:Asp.Net MVC5入门学习系列④ 添加Model且简单的使用EF 对于EF(EntityFramework)不了解的朋友可以去百度文科或者在园子里搜一些简资源看下,假如和我一样知道EF的概 ...

  7. Asp.Net MVC5入门学习

    添加一个Controller(控制器) 因为我们用的是Asp.Net MVC,MVC最终还是一套框架,所以我们还是需要遵循它才能玩下去,或者说是更好的利用来便于我们的开发,要是对MVC概念还有点模糊的 ...

  8. MVC5入门学习系列④

    添加Model且简单的使用EF 对于EF(EntityFramework)不了解的朋友可以去百度文科或者在园子里搜一些简资源看下,假如和我一样知道EF的概念,那么就知道EF有一个code first的 ...

  9. Bootstrap3.0入门学习系列

    Bootstrap3.0入门学习系列规划[持续更新]   前言 首先在此多谢博友们在前几篇博文当中给与的支持和鼓励,以及在回复中提出的问题.意见和看法. 在此先声明一下,之前在下小菜所有的随笔文章中, ...

随机推荐

  1. CF 444B(DZY Loves FFT-时间复杂度)

    B. DZY Loves FFT time limit per test 1 second memory limit per test 256 megabytes input standard inp ...

  2. 详谈socket请求Web服务器过程(转)

    最开始我们需要明白一件事情,因为这是这篇文章的前提: HTTP协议只是一个应用层协议,它底层是通过TCP进行传输数据的.因此,浏览器访问Web服务器的过程必须先有“连接建立”的发生. 而有人或许会问: ...

  3. [SQL Server优化]善用系统监视器,确定系统瓶颈

    原文:[SQL Server优化]善用系统监视器,确定系统瓶颈 来自: http://hi.baidu.com/solorez/blog/item/f82038fa0e71b78d9e51468c.h ...

  4. PHP 闭包函数 function use 使用方法实例

    /** * @param string $hisStart * @param string $hisEnd * @param int $range * @param string $format * ...

  5. Deep Learning Papers

    一.Image Classification(Recognition) lenet: http://yann.lecun.com/exdb/publis/pdf/lecun-01a.pdf alexn ...

  6. requirejs实现模块化

    使用requirejs实现模块化编程 > 序言 - -# 公司大了,业务多了,前端代码量也逐渐增大,我们渐渐的依赖js实现的交互越来越多,长期以来会导致我们的代码维护越来越困难,所以依赖的插件也 ...

  7. Angular绑定数据时转义html标签

    AngularJs在绑定数据时默认会以文本的形式出现在页面上,比如我现在有这样一段代码 <div ng-controller="testCtrl">{{data}}&l ...

  8. 关于在同一母版页中使用多个CSS文件的解决方案

    原文:关于在同一母版页中使用多个CSS文件的解决方案 以前都用.NET1.1没遇到这问题,现在换了2.0开始学着使用母版,结果就遇到了这个问题,在百度上一搜索才发现有不少人提出这个问题,但没找到好的解 ...

  9. Cocos2d-x 文本渲染

     文本渲染: CCLabelAtlas.CCLabelBMFont.CCLabelTTF类都是继承 CCLabelProtocol类,即能够使用系统字,也能够自己定义渲染字体. CCLabelAtla ...

  10. 微信消息体签名及加解密功能详细解析以及.net实现

    原文:微信消息体签名及加解密功能详细解析以及.net实现 前言 微信消息体签名及加密功能已上线,明文传输确实存在安全风险,鉴于微信的用户范围使用之广泛,必定会成为众矢之的.所以大家还是尽快接入安全模式 ...