`
javahigh1
  • 浏览: 1288495 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

ASP.NET MVC控制器概览(C#)

阅读更多

这篇教程探讨ASP.NET MVC控制器,控制器action和action result。完成此教程后,你会懂得控制器如何被用来控制访问者与ASP.NET MVC网站的交互方式。

理解控制器

MVC 控制器负责对ASP.NET MVC网站的请求作出回应。每一个浏览器请求都被映射到一个特定的控制器。例如,想象你在浏览器地址栏输入以下URL:

http://localhost/Product/Index/3

在这种情况下,名为ProductController的控制器被调用。ProductController 负责生成对浏览器请求的作出响应。例如,控制器会返回一个特定视图到浏览器或者将用户重定向到另一个控制器。

代码1 包含了一个名为 ProductController 的简单控制器。

代码1– Controllers\ProductController.cs

就如你在代码1中看到的,控制器只是一个类(一个Visual Basic .NET或者C#类)。控制器继承基类 System.Web.Mvc.Controller。 由于控制器继承此基类,所以它继承了几个有用的方法(等会儿我们来讨论这些方法)。

理解控制器 Actions

控制器暴露 actions.一个 action 是一个控制器上的方法,在浏览器地址栏输入特定URL时就会被调用。例如,想象发送以下URL请求:

http://localhost/Product/Index/3

在这情况下,ProductController 类上的 Index()方法被调用。 Index() 方法就是控制器action的一个例子。

控制器action 必须是控制器类的公共方法。C#方法默认是私有方法。注意任何加到控制器类的公共方法都会自动被暴露成控制器action(你必须小心,因为任何人只要在浏览器地址栏输入正确URL都可以调用控制器action)。

满足控制器action还需要几个额外要求。用作控制器action的方法不能重载。还有,控制器action 不能是静态方法。其它的方法都可以作为控制器action。

理解 Action Result

控制器 action 返回某些被称为 action result 的东西。 action result 就是控制器action对浏览器请求作出的响应。

ASP.NET MVC 框架支持集中类型的action result,包括:

  1. ViewResult – 表示 HTML和标签。
  2. EmptyResult –表示无结果。
  3. RedirectResult – 表示重定向到另一个URL
  4. JsonResult – 表示可用于AJAX程序的 JavaScript对象符号(JSON)。
  5. ContentResult – 表示文本结果。
  6. FileContentResult – 表示可下载文件(二进制内容)。
  7. FilePathResult – 表示可下载文件 (路径)。
  8. FileStreamResult – 表示可下载文件(文件流)。

所有这些 action results 都继承于 ActionResult 基类。

在多数情况下,控制器 action返回一个 ViewResult。如代码2:

代码2 – Controllers\BookController.cs

当 action返回一个 ViewResult 时, HTML 返回到浏览器。代码2中的 Index() 方法返回一个名为Index的视图到浏览器。

注意代码2中的 Index() action 不返回ViewResult(),而是调用了控制器基类的View()方法。通常,不会直接返回action result,而是调用如下控制器基类方法的其中一个:

  1. View – 返回一个ViewResult action result.
  2. Redirect –返回一个 RedirectResult action result.
  3. RedirectToAction – 返回一个 RedirectToAction action result.
  4. RedirectToRoute – 返回一个 RedirectToRouteResult action result.
  5. Json – 返回一个 JsonResult action result.
  6. JavaScriptResult –返回一个 JavaScriptResult.
  7. Content – 返回一个 ContentResult action result.
  8. File – 返回一个 FileContentResult, FilePathResult,或者 FileStreamResult ,取决于传入方法的参数。

所以,如果你想返回一个视图到浏览器,就调用View()方法。如果想将用户从一个控制器action重定向到另一个,就调用RedirectToAction()方法。例如,代码3中的 Details() action 显示一个视图或者将用户重定向到Index() action,取决于Id参数是否有值。

代码3 – CustomerController.cs

ContentResult action result 比较特殊。你可以用 ContentResult action result 来返回一个纯文本的 action result。例如,代码4中的 Index() 方法返回纯文本而非HTML。

代码4 – Controllers\StatusController.cs

当 StatusController.Index() action 被调用时, 并不是返回一个视图,而是返回纯文本"Hello World!"到浏览器。

如果控制器 action 返回一个不是 action result 的结果 – 例如, 一个日期或者一个整数 – 那么结果会被自动封装到 ContentResult。 例如,当代码5中的WorkController的 Index() action被调用,日期会自动作为 ContentResult 返回。

代码 5 – WorkController.cs

代码5中的 Index() action返回一个DateTime对象。ASP.NET MVC 框架将DateTime对象转换成字符串并将DateTime的值自动封装到 ContentResult中。浏览器收到的是纯文本形式的日期和时间。

总结

本教程的目的是向你介绍ASP.NET MVC控制器,控制器action和控制器 action result的概念。在第一节,你学到了如何添加一个新控制器到ASP.NET MVC程序。然后,你学到了控制器的公共方法如何被暴露为控制器action。最后,我们讨论了可以从控制器action 返回的action result的不同类型。特别是,我们讨论了如何从控制器action中返回一个 ViewResult, RedirectToActionResult, 和 ContentResult。


原文地址:http://www.asp.net/learn/mvc/tutorial-03-cs.aspx

分享到:
评论

相关推荐

    ASP.Net MVC 中的医院管理系统项目源码+使用说明(毕设参考)

    技术栈:使用C#语言和ASP.NET MVC框架开发,数据库后端使用SQL Server。 项目类型:是一个完全自动化的Web应用程序。 关键特点 数据管理:处理医院各个部门的数据,比如患者信息、医疗记录、药品库存、实验室测试...

    ASP.NET MVC3官方实例教程MusicStore中文版

    本书通过一个实际的音乐商店项目,逐步引导读者了解并应用ASP.NET MVC3的各项特性,包括控制器、视图、模型、数据访问、表单创建、模型验证、成员管理、授权、Ajax更新、购物车功能、结账流程以及站点设计等方面。...

    c# ASP.NET MVC视频

    **C# ASP.NET MVC 视频教程概览** C# ASP.NET MVC 是一种构建Web应用程序的强大框架,由Microsoft开发,它结合了Model-View-Controller(MVC)设计模式,C#编程语言以及ASP.NET技术栈的优势。在这个视频教程中,你...

    精通ASP.NET MVC 1.0(Professional ASP.NET MVC1.0)

    - **什么是ASP.NET MVC**:ASP.NET MVC是一个用于构建动态网站的应用程序框架,它遵循模型-视图-控制器(Model-View-Controller)设计模式。 - **MVC架构的优势**:包括提高开发效率、易于测试、清晰的分层结构等...

    最终版Pro.ASP.NET.MVC.3.Framework(3rd Edition)

    ### ASP.NET MVC 3 框架概览与关键技术知识点 #### 一、ASP.NET MVC 3 框架简介 - **框架定位与特点**:ASP.NET MVC 是微软推出的一种用于构建动态网站的框架,它采用了 Model-View-Controller(MVC)设计模式。...

    Pro ASP.NET MVC 3 Framework 3rd Edition

    ### ASP.NET MVC 3 Framework 3rd Edition 关键知识点概览 #### 一、书籍概述与作者信息 - **书籍名称**:《Pro ASP.NET MVC 3 Framework 3rd Edition》 - **书籍版本**:正式完全版 - **书籍定位**:权威指南 - **...

    ASP.NET MVC 3教程

    ### ASP.NET MVC 3 教程知识点概览 #### 一、ASP.NET MVC 3简介 - **ASP.NET MVC** 是一种使用模型-视图-控制器(MVC)架构模式的框架,用于构建动态Web应用程序。它使Web开发更加高效、灵活,并支持无状态的HTTP协议...

    使用ASP.NET MVC3 实现一个访问统计系统

    ASP.NET MVC3是一个用于构建动态网站的开源框架,它基于模型-视图-控制器(Model-View-Controller)设计模式,提供了高度可测试性和灵活性。在这个项目中,我们将探讨如何利用ASP.NET MVC3来实现一个功能完备的访问...

    ASP.Net MVC3.0 中文教程

    在“新建项目”对话框中,选择“Visual C#”作为开发语言,随后选择“Web”分类下的“ASP.NET MVC3 Web 应用程序”。为项目命名,例如“MvcMovie”,并点击确定。 ##### 3. 项目模板与视图引擎选择 在弹出的“新...

    ASP.net MVC3.0_快速入门.doc

    - **ASP.NET MVC** 是一种基于模型-视图-控制器(Model-View-Controller, MVC)架构模式的框架,用于构建动态网页应用程序。这种模式能够清晰地分离应用程序的不同组成部分,从而提高开发效率和维护性。 #### 二、...

    ASP.NET MVC in Action

    ### ASP.NET MVC in Action知识点概览 #### 一、ASP.NET MVC框架介绍 - **MVC模式概述**:模型-视图-控制器(Model-View-Controller,简称MVC)是一种广泛采用的设计模式,用于软件工程中分离业务逻辑、用户界面和...

    Apress Pro ASP.NET MVC 3 Framework(2011-07-09)

    **ASP.NET MVC 3**是Microsoft推出的一款强大的Web开发框架,它不仅继承了传统的ASP.NET平台的优点,还融合了现代敏捷开发的最佳实践以及模型-视图-控制器(MVC)架构模式的优势。该框架旨在为Web开发者提供一种更...

    professional asp.net mvc 3 PDF

    - **技术更新**:相较于前代版本,ASP.NET MVC 3 引入了诸多新特性,包括新的视图引擎 Razor、NuGet 包管理器等。 #### 二、Razor 视图引擎 - **简介**:Razor 是一种简洁、直观的语法,用于创建视图页面。它允许...

    asp.net mvc3 中文入门教程

    ### ASP.NET MVC3 中文入门教程知识点概览 #### 一、ASP.NET MVC3简介 - **定义**:ASP.NET MVC3 是微软推出的基于模型-视图-控制器(Model-View-Controller, MVC)设计模式的Web应用开发框架。它为开发者提供了...

Global site tag (gtag.js) - Google Analytics