原文: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. ZOJ3629 Treasure Hunt IV(找到规律,按公式)

    Treasure Hunt IV Time Limit: 2 Seconds      Memory Limit: 65536 KB Alice is exploring the wonderland ...

  2. 接口设计ie常见的问题

    问题叙述性说明: 当围绕一个简单的页面布局设计.我发现了一个奇怪的相对布局问题. 同的方式围绕布局接口.它是利用左div浮动.对div设定 margin-left这样达到的效果.实现了chrome浏览 ...

  3. UVa 10397 Connect the Campus

    最小生成树 Kruskal #include<cmath> #include<iostream> #include<cstdio> #include<algo ...

  4. 数据同步DataX

    数据同步那些事儿(优化过程分享)   简介 很久之前就想写这篇文章了,主要是介绍一下我做数据同步的过程中遇到的一些有意思的内容,和提升效率的过程. 当前在数据处理的过程中,数据同步如同血液一般充满全过 ...

  5. 余弦信号DFT频谱分析(继续)

    以前谈到序列的实际长度可以通过零填充方法加入,使得最终增加N添加表观分辨率. 但它并没有解决泄漏频率的问题. 根本原因在于泄漏窗口选择的频率. 由于矩形窗突然被切断,频谱旁瓣相对幅度过大,造成泄漏分量 ...

  6. Dev GridView RowCellClick活动MouseDown事件

    GridView可编辑.在无声的思想左键点击"进入编辑". 将GridView的OptionsColumn.AllowEdit至false离开时触发RowCellClick. 但有 ...

  7. cocos2d-x3.2中map的基本操作和使用

    在游戏开发中,我们有时候会用到map,而map的使用方法我简单给大家介绍一下.Map是c++的一个标准容器,她提供了非常好一对一的关系,在一些程序中建立一个map能够起到事半功倍的效果,总结了一些ma ...

  8. Codeforces Round #277.5 (Div. 2)A——SwapSort

    A. SwapSort time limit per test 1 second memory limit per test 256 megabytes input standard input ou ...

  9. ios7 JavaScriptCore.framework

    曾经想要oc调用js代码通常是通过uiwebview的stringByEvaluatingJavaScriptFromString方法,或是直接使用JavaScriptCore引擎,比如https:/ ...

  10. SQL_sql的简单查询

    ***********************************************声明*************************************************** ...