2. 添加一个控制器

· 原文地址:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-controller

· 译文地址:http://www.cnblogs.com/powertoolsteam/archive/2012/11/02/2751015.html

Asp.Net MVC4入门指南(2):添加一个控制器

MVC代表: 模型-视图-控制器 。MVC是一个架构良好并且易于测试和易于维护的开发模式。基于MVC模式的应用程序包含:

· Models: 表示该应用程序的数据并使用验证逻辑来强制实施业务规则的数据类。

· Views: 应用程序动态生成 HTML所使用的模板文件。

· Controllers: 处理浏览器的请求,取得数据模型,然后指定要响应浏览器请求的视图模板。

本系列教程,我们将覆盖所有这些概念,并告诉您如何使用它们来构建应用程序。

首先,让我们创建一个控制器类。在解决方案资源管理器中,用鼠标右键单击控制器文件夹,然后选择“添加控制器“

命名新的控制器为“HelloWorldController”。保留默认的模板为“Empty MVC controller”,并单击“ 添加“。

请注意,在解决方案资源管理器中会创建一个名为HelloWorldController.cs的新文件。该文件会被IDE默认打开。

用下面的代码替换该文件中的内容。

using System.Web;
using System.Web.Mvc;
  
namespace MvcMovie.Controllers
{
    public class HelloWorldController : Controller
    {
        //
        // GET: /HelloWorld/
  
        public string Index()
        {
            return "This is my <b>default</b> action...";
        }
  
        //
        // GET: /HelloWorld/Welcome/
  
        public string Welcome()
        {
            return "This is the Welcome action method...";
        }
    }
}

在这个例子中控制器方法将返回一个字符串的HTML。本控制器被命名HelloWorldController代码中的第一种方法被命名为Index。让我们从浏览器中调用它。运行应用程序(按F5或CTRL + F5)。在浏览器的地址栏中输入路径“HelloWorld“。(例如,在下面的示例中: http://localhost:1234/HelloWorld)页面在浏览器中的表现如下面的截图。在上面的方法中,代码直接返回了一个字符串。你告诉系统只返回一些HTML,系统确实这样做了!

根据传入的URL,ASP.NET MVC调用不同的控制器类(和它们之中不同的操作方法)。使用ASP.NET MVC默认的URL路由逻辑格式,以确定哪些代码会被调用:

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

第一部分的URL确定那个控制器类会被执行。因此 /HelloWorld映射到HelloWorldController控制器类。第二部分的URL确定要执行控制器类中的那个操作方法。因此 /HelloWorld/Index,会使得HelloWorldController控制器类的Index 方法被执行。请注意,我们只需要浏览 /HelloWorld路径,默认情况下会调用Index方法。如果没有明确的指定操作方法,Index方法会默认的被控制器类调用。

浏览http://localhost:xxxx/HelloWorld/Welcome。Welcome方法会被运行并返回字符串:"This is the Welcome action method...”。 默认的MVC映射为/[Controller]/[ActionName]/[Parameters] 对于这个URL,控制器类是HelloWorld,操作方法是Welcome,您还没有使用过URL的[Parameters] 部分。

让我们稍微修改一下这个例子,以便可以使用URL传递一些参数信息给控制器类(例如, /HelloWorld/Welcome?name=Scott&numtimes=4)。改变您的Welcome 方法来包含两个参数,如下所示。需要注意的是,示例代码使用了C#语言的可选参数功能,numTimes参数在不传值时,默认值为1。

public string Welcome(string name, int numTimes = 1) {
     return HttpUtility.HtmlEncode("Hello " + name + ", NumTimes is: " + numTimes);
}

运行您的应用程序并浏览此URL(http://localhost:xxxx/HelloWorld/Welcome?name=Scott&numtimes=4。你可以对参数name 和numtimes 尝试不同的值。 ASP.NET MVC model binding system 会自动将地址栏中URL里的 query string映射到您方法中的参数。

在这两个例子中,控制器一直在做着MVC中“VC”部分的职能。 也就是视图和控制器的工作。该控制器直接返回HTML内容。通常情况下,您不会让控制器直接返回HTML,因为这样代码会变得非常的繁琐。相反,我们通常会使用一个单独的视图模板文件来帮助生成返回的HTML。让我们来看看下面我们如何能做到这一点吧。

控制器是MVC中的重要组成部分,有了本节知识的学习,相信大家会更加深入地理解MVC。那么在MVC开发过程中,除了以上知识之外,还可以借助哪些工具呢?ComponentOne Studio ASP.NET MVC 是一款针对 MVC 平台的控件包,它与 Visual Studio 无缝集成,完全与 MVC6 和 ASP.NET 5.0 兼容,将大幅提高工作效率。

转载于:https://www.cnblogs.com/Kiuyam/p/6346427.html

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

  1. Asp.Net MVC4入门指南(3):添加一个视图

    在本节中,您需要修改HelloWorldController类,从而使用视图模板文件,干净优雅的封装生成返回到客户端浏览器HTML的过程. 您将创建一个视图模板文件,其中使用了ASP.NET MVC ...

  2. Asp.Net MVC4入门指南(5):从控制器访问数据模型

    在本节中,您将创建一个新的MoviesController类,并在这个Controller类里编写代码来取得电影数据,并使用视图模板将数据展示在浏览器里. 在开始下一步前,先Build一下应用程序(生 ...

  3. ASP.NET MVC3 快速入门--第二节 添加一个控制器

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

  4. Asp.Net MVC4入门指南(9):查询详细信息和删除记录

    在本教程中,您将查看自动生成的Details和Delete方法. 查询详细信息和删除记录 打开Movie控制器并查看Details方法. ? Code First 使得您可以轻松的使用Find方法来搜 ...

  5. 读《asp.net MVC4开发指南(黄保翕编著)》笔记

    在刚刚过去的中秋节中,利用了两天的碎片时间把黄保翕编著的<asp.net MVC4 开发指南>看了遍,笔记如下,欢饮在开发MVC的同学一起来探讨: 1.社区 2.开源程序 3.易测试性 4 ...

  6. asp.net mvc linux,ASP.NET MVC4开发指南PDF扫描版+源码

    ASP.NET MVC问世已久,几年前或许有人会担心ASP.NET MVC框架是否能用在实务的项目上,也担心用在新项目上是否真的能改善开发效率与质量,但笔者这几年下来,已经累积数十个网站项目改用ASP ...

  7. Dropwizard官方教程(一) 入门

    转载:https://www.jianshu.com/p/3bb308c9bbcb 入门 本文将指导您完成一个简单的Dropwizard的Hello World项目.在此过程中,我们将解释各种底层库及 ...

  8. [paddlepaddle][转载][官方教程]PP-Human快速开始

    目录 环境准备 模型下载 配置文件说明 预测部署 参数说明 方案介绍 行人检测 行人跟踪 跨镜行人跟踪 属性识别 行为识别 环境准备 环境要求: PaddleDetection版本 >= rel ...

  9. Django官方教程(十二)【编写你的第一个 Django 补丁】

    为 Django 编写你的第一个补丁 介绍 对向社区回馈有点兴趣?也许你发现了 Django 的一个 bug,然后你想修复它,或者你想为 Django 添加一些功能. 回馈 Django 本身就是看到 ...

最新文章

  1. 2021 Facebook 博士奖研金名单出炉:13位华人学者获选
  2. 剑指offer 面试31题
  3. 利用Reachability实现网络状态监听
  4. python云变量_Python之变量的创建过程
  5. B/S和C/S架构图解
  6. Dom4j完整教程~XML文档简单操作
  7. Docker原理之Namespaces
  8. 搭建网站必不可少的知识14
  9. php获取上海时间代码,PHP获取常用时间的总结
  10. TensorFlow 支持 Unicode,中文 NLP 终于省心了
  11. 资源 | 近500页python深度学习实践应用pdf
  12. HyperLedger的共识( Consensus)
  13. IT男,程序猿在婚恋市场有多受欢迎?
  14. Python全栈(四)高级编程技巧之4.元类编程、迭代器和生成器
  15. 基于Java Web的随意购商城系统(开源项目)
  16. C语言实数除法怎样保留小数(编程技巧)
  17. Himall商城普通帮助类(一)
  18. JavaScript格式化日期和时间
  19. 图新地球:如何导入修改了高程基准(椭球)的CAD文件
  20. python网站数据监测_python 网站数据监控

热门文章

  1. 【MySQL】(图解)快速理解内连接、外连接、左连接、右连接
  2. vim 编辑器安装 使用
  3. CNN阴影去除--DeshadowNet: A Multi-context Embedding Deep Network for Shadow Removal
  4. 语义分割--FCN 算法中的一些细节--特征怎么融合
  5. ModuleNotFoundError: No module named 'sklearn.cross_validation'
  6. 尝试编辑虚拟磁盘时服务器遇到错误,虚拟磁盘Linux服务端测试及故障处理有哪些呢?...
  7. Docker(四):Docker 命令大全
  8. python爬取高考各高校分数线_Python 爬取高校历年分数线
  9. tof摄像头手势识别_行业深度光学行业研究:CIS、光学元件、指纹识别、镜头模组...
  10. mysql 分库分表 建表_【分库分表】sharding-jdbc实践—分库分表入门