ASP.NET MVC5高级编程——(1)了解MVC模式和第一个MVC程序、认识控制器

最近开了ASP.NET MVC5高级编程这本课程,先来无事,开个专栏好了,不然懒得身体生锈~\(≧▽≦)/~啦啦啦。

长话短说,教程简洁,不会的留言即可。

MVC 编程模式

MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式:

  • Model(模型)表示应用程序核心(比如数据库记录列表)。
  • View(视图)显示数据(数据库记录)。
  • Controller(控制器)处理输入(写入数据库记录)。

下面,我们将开始第一个MVC程序哦!

示例程序——MVC MusicStore

  • Step1 创建一个Asp.Net MVC 5项目

打开Visual studio 2015 点“文件”->新建->项目。

Visual C# --> Web --> ASP.NET Web应用程序

MVC此时处于选中状态,勾选“添加单元测试”(最好选上,利于后期调试)。

完成以上步骤,基本的项目创建完成,此时点击“Ctrl+F5”可运行项目,如下图所示。

下面我们开始了解具体的项目:

首先是各个顶级目录的作用:

重要文件说明 1)、Views下面的web.config:是整个视图的配置文件;根目录下的web.config:作用于整个项目的配置 2)、Global.asax.cs全局应用程序控制文件

3、MVC中的约定:

视图访问和寻址规则 1)、在控制器中使用View()方法调用视图,返回和“动作方法同名”的视图 2)、寻址规则:View()方法默认从“View文件夹”下寻找和控制器同名的文件夹 MVC中的约定 1)、控制器:必须以Controller结尾 2)、视图:必须放在Views文件夹下,并且要和控制器同名的子目录中创建 约定胜于配置 1)、提前规定好 2)、无需配置 3)、不遵守规则则出错

开始认识控制器

我们先看看我们创建的这个默认的项目,有个HomeController类:

可以看到,页面已经发生变化:

下面我们添加一个新的StoreController类:

(右击)Controllers文件夹 --> 添加 --> 控制器,选择空类别基架模板

添加后在Controllers文件夹中会多出文件“StoreController.cs”,并且在文件夹Views下会多出“Store”文件夹,遵循了我们的约定:

大家可以看到,控制器中的这些方法(Index、Browse)称为控制器操作,控制器操作的工作是响应URL请求,执行正确的操作,并向浏览器或是单击这个URL的用户做出响应!

比如我们现在新建的这个Store页面,我们修改他的Index方法:

然后URL为:http://localhost:54297/Store 当然,不同机器可能端口号不一样,自己更改即可,或者在vs中Ctrl+F5,就是不调试的启动:

然后可以自己添加方法:

修改Details方法,使其读取和显示一个名为ID的参数,在Asp.Net MVC 5的默认路由约定中:将操作方法名称后面的URL的这个片段作为一个参数,该参数的名称为ID,如果操作方法中有名为ID的参数,那么Asp.Net MVC 会自动将这个URL片段作为参数传进来,就是ID的值!

如图:

可以在浏览器中看localhost:54297/Store/Details/5:

控制器总结:

  • 1 ,不需要任何额外配置,浏览/Store/Browse就可以执行StoreController类中的Browse方法,这就是操作中的路由。
  • 2 ,判断一个类是否是控制器:看它是否继承了 System.Web.Controller类。
  • 3 ,在MVC中,控制器才是核心,每一个请求都必须通过控制器处理,而且有些请求不需要模型和视图!

控制器就是MVC应用程序中的“指挥员”,它紧密的编排用户、模型对象和视图的交互。同时控制器还负责响应用户的输入,操纵正确的模型对象,然后选择合适的视图显示给用户以作为对用户最初输入的响应!!!

参考文章,感谢菡二娷博主:

https://www.cnblogs.com/imstrive/category/900665.html

https://www.cnblogs.com/cuig/p/8945145.html

本文分享自微信公众号 - 浩Coding(gh_c4a2e63d2ca7)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-09-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券