MVC的全称为model-view-controller(模型-视图-控制器)。MVC是一种开发应用程序的模式,这个模式已经具有了很好的框架架构,并且十分容易维护。使用MVC开发出来的应用程序一般包括以下几块内容:

·         控制器(Controller):控制器类处理客户端向Web应用程序发出的请求,获取数据,并指定返回给客户端,用来显示处理结果的视图。

·         模型(Model):模型类代表了应用程序的数据,这些数据通常具有一个数据验证逻辑,用来使得这些数据必须符合业务逻辑。

·         视图(View):视图类是Web应用程序中用来生成并显示HTML格式的服务器端对客户端请求的响应结果的模板文件。

在本教程中,将全面介绍这些概念,并且向你展示如何利用它们来搭建一个应用程序。

首先,让我们来创建一个控制器(controller)类。在解决方案资源管理器中,鼠标右击Controllers文件夹,并且点击添加-〉控制器,如图2-1所示。

图2-1 添加控制器

在弹出的“添加控制器”对话框中,将控制器命名为“HelloWorldController”,然后点击添加按钮,如图2-2所示。

图2-2 命名控制器

观察解决方案资源管理器中新增加了一个文件,名字为HelloWorldController.cs,并且该文件呈打开状态,如图2-3所示。

修改打开的HelloWorldController.cs文件,在HelloWorldController类中,创建如代码清单2-1中所示的两个方法,控制器将返回一个HTML格式的字符串。

代码清单2-1 在控制器中创建方法

public class HelloWorldController : Controller

{

//

// GET: /HelloWorld/

public string Index()

{

return "这是我的<b>默认</b>action...";

}

//

// GET: /HelloWorld/Welcome/

public string WelCome()

{

return "这是我的Welcome方法...";

}

}

在这个修改后的HelloWorldController控制器中,第一个方法名为Index。现在让我们从浏览器中调用该方法。运行应用程序(按F5键或Ctrl+F5键),在打开的浏览器中的地址栏后面,添加“HelloWorld”路径(譬如,在我的计算机上,浏览器中地址为http://localhost:4423/HelloWorld),画面显示如图2-4所示。由于在Index方法中,直接返回了一个HTML格式的字符串,所以在浏览器中将该字符串显示出来。

图2-4 HelloWorldController控制器中Index方法的运行结果

在ASP.NET MVC中,可以根据浏览器中的输入地址来调用不同的控制器或控制七种不同的方法。ASP.NET MVC的默认的映射逻辑使用如下所示的格式来决定应该调用什么控制器或控制器中的什么方法。

/[Controller]/[ActionName]/[Parameters]

URL地址的第一部分决定调用哪个控制器类,所以“/HelloWorld”映射到HelloWorldController控制器类。第二部分决定调用控制器中的哪个方法。所以“/HelloWorld/Index”将会调用HelloWorldController控制器类的Index方法。由于Index方法是控制器类的默认方法(可以另外指定控制器类的默认方法),所以也可只输入“/HelloWorld”来调用该方法。

在浏览器的地址栏中,输入“http://localhost:xxxx/HelloWorld/Welcome”,将会调用HelloWorldController控制器类的Welcome方法,该方法返回“这是我的Welcome方法...”文字,所以浏览器中显示该文字,如图2-5所示。

图2-5 HelloWorldController控制器中Welcome方法的运行结果

接下来,让我们修改Welcome方法,以便在URL地址栏中可以传递一些参数给该方法(例如:/HelloWorld/Welcome?name=Scott&numtimes=4)。修改后的代码如下所示。注意这里我们使用了C#的可选参数,当URL地址中没有使用numtimes参数时,该参数被默认设定为1。

public string Welcome(string name,int numTimes=1)

{

return HttpUtility.HtmlEncode("Hello " + name + ",NumTimes is:" + numTimes);

}

运行该应用程序,在浏览器中输入“http://localhost:xxxx/HelloWorld/Welcome?name=Scott&numtimes=4”,运行结果显示如图2-6所示。浏览器自动将URL地址栏中的参数映射成Welcome方法中的传入参数。

图2-6 在Welcome方法中使用参数

到现在为止,我们展示了MVC中的“VC”(视图与控制器)部分的工作机制,控制器返回HTML字符串。很显然大多数情况下你不想让控制器直接返回HTML字符串,因为那样的话编码起来就太麻烦了。所以我们需要使用不同的视图模板文件来帮助生成HTML格式的页面文件,在下一节中让我们来看一下如何在ASP.NET MVC3中使用视图。

转载于:https://blog.51cto.com/yangkaixiang/611148

ASP.NET MVC3 快速入门--第二节 添加一个控制器相关推荐

  1. ASP.NET MVC3 快速入门

    第一节 概述    (2011-02-23 20:57:18)  转载 标签: web应用程序 分类: ASP.NETMVC3 1.1  本教程的学习内容     在本教程中,你将学会如下内容: •  ...

  2. ASP.NET MVC3 快速入门-第四节 添加一个模型(转)

    在本节中我们将追加一些类来管理数据库中的电影.这些类将成为我们的MVC应用程序中的"模型"部分. 我们将使用一个.NET Framework的被称之为"Entity Fr ...

  3. msp432快速入门第二节之sdk的详解

    SDK详解 (一) 目的是快速上手这款单片机,所以一些对于新手不友好的东西我都不会介绍,简略说明就略过. TI的SDK安装后如此: (1).metadata没用,似乎是安装后的遗留产品,好让CCS ( ...

  4. Asp.net MVC3.0 入门指南 6 审视编辑方法和视图

    审视编辑方法和视图 在这一节中,您将审视movie控制器生成的响应方法和视图.然后您将添加 一个自定义搜索页面. 运行程序并通过在URL追加/Moives浏览movie控制器.把鼠标悬停在Edit 链 ...

  5. 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  6. 【翻译转载】【官方教程】Asp.Net MVC4入门指南(2):添加一个控制器

    2. 添加一个控制器 · 原文地址:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-c ...

  7. 语音识别入门第二节:语音信号处理及特征提取

    目录 数字信号处理基础 基础知识 傅里叶分析 常用特征提取 特征提取流程 Fbank MFCC 数字信号处理基础 基础知识 模拟信号到数字信号转化(ADC):在科学和工程中,遇到的大多数信号都是连续的 ...

  8. .net mvc html访问数据库,【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6) - 三生石上...

    图挂了的说明: 我是在Word中写的本系列文章,然后转成的HTML,所以图片都存在于 fineui.com 服务器,由于临时访问量太多,服务器喘不过气了.... 你可以稍后访问,实在是抱歉...... ...

  9. ASP.NET Core快速入门(第2章:配置管理)--学习笔记

    点击蓝字关注我们 课程链接:http://video.jessetalk.cn/course/explore 良心课程,大家一起来学习哈! 任务9:配置介绍 命令行配置 Json文件配置 从配置文件文 ...

最新文章

  1. 中国 12 个工科世界第一,网友:全是不吃香的|软科 2021 世界一流学科排名
  2. controller是什么意思_好文推荐:什么是领域驱动设计?DDD?
  3. axure 如何设置选项联动_Axure下拉框级联操作
  4. Recall(召回率) Precision(准确率) F-Measure E值 sensitivity(灵敏性) specificity(特异性)漏诊率 误诊率 ROC AUC
  5. 琥珀ai_琥珀项目:Java的未来暴露
  6. 拜托,别再拿毒鸡汤祸害我们了,我们已经很苦很努力了
  7. 页面输出缓存[转载]
  8. python可视化的图表汉字显示成框框_Matplotlib图表上输出中文(汉字)、减号问题...
  9. Java中的frontcolor_关于java:Color.red和Color.RED之间的区别
  10. Winform截图小程序
  11. Django 阅读笔记 - Cache
  12. L1-049 天梯赛座位分配(模拟)
  13. [MATLABSIMULINK] 如何提取并处理Simscape Power System 中powergui的谐波分析数据
  14. ❤520给她准备的情人节礼物~html+css+javascript漫天飞雪3D相册(含音乐)
  15. 如何以管理员身份运行powerShell
  16. 【线性代数】矩阵的四个基本子空间
  17. Idea中如何查看pom中dependency Analyzer的快捷键
  18. apa引用要在文中吗_如何在研究论文中引用文献
  19. 游戏开发之路-hxx
  20. java Spring-Boot框架学习视频-百度云盘

热门文章

  1. 一行代码,得到最强时序基线!
  2. CVPR 2021论文分享会日程公布!
  3. 张海腾:语音识别实践教程
  4. 原创推荐!B站最强学习资源汇总(数据科学,机器学习,Python)
  5. 别骂了,拼多多不挣钱(Doge)
  6. 清华贵系的期末大作业:奋战三周,造台计算机!
  7. 吴恩达:机器学习毕业后,如何规划职业生涯?
  8. 94年出生,6篇SCI,一作发Science,你还不放下手上玩的泥巴
  9. leveldb源码分析:Open启动流程
  10. 如何用CMD递归查看Windows中文件夹结构 也叫做树形结构!