原文:http://rachelappel.com/asp.net-mvc-actiohttp://i.cnblogs.com/EditPosts.aspx?postid=3857238&update=1nresults-explained

1.前言

  Action Result在ASP.NET MVC控制器系统中是非常重要的,我们要时常关注这些。理解它们是怎么给我们带来更多的选择会让你的代码更加健壮。

2.什么是Action Result

  Action Result是控制器方法(动作方法)的返回类型,作为基础类,为*Result类服务。一个动作方法传递模型到视图、文件流、重定向到新的控制器,会对手上的工作所必需的。控制器作为系统的组成部分,就像一个交通警察。

  有许多衍生的ActionResult类型可以作为一些特定视图的特定的返回值。将鼠标悬浮在一个方法的上面,你可以快速浏览这些ActionResult类型,这是由IDE提供的TOOL窗口(PS:看到下面的评论,这个是需要下载一个插件的,个人觉得没有必要下载)。

  在详细的提示下,tab下列出一系列的从ActionResult衍生出的类型。尽管这些提示只在获取焦点时才能看到,我们也希望能在其它地方看到这些返回类型的简短的说明,比如引用或者返回这些类型的时候。

  (PS:下面的这张图片是作者IDE的,我们的话,需要下载插件,但出来的效果可能会有些差异。)

  如果想更深层次地了解什么是ActionResult和它是怎么工作的,可以在方法的结尾设置一个断点,我们可以看到非常详细的信息,在断点查看窗口Watch Window中查看,如下图

  

注意到里面的模型,ViewBag ViewData TempData,在这个练习中,在窗口中可以看出这些都是强类型的,都是Object类型的容器。

  这些在视图中使用的对象正是你所需要的。当然Model是经常使用的,包含我们程序中使用的一系列其它对象。TempData对象用于控制器之间传递数据,ViewData和ViewBag用于控制器和视图之间传递数据。

  Model属性是传递给视图的模型,它的数据类型需要与视图中的标签@model搭配使用,请看上面的图片,Model属性包含强类型的Product对象(也可以是你想要返回的对象)是与视图中的模型相匹配的。

  看到Watch窗口中,运行时将一个ActionResult转换成一个ViewResult,然而如果你想要在设计时得到更多的具体的信息,转换ActionResult到特定或者衍生出来的类,比如,一个ViewResult产生一个与ActionResult相同结构的对象。其中,使用强类型会使用代码更加准确,对象的判断发生在编译时,而不是在运行时。

3.动作方法及其结果、路由

  动作方法和路由在所有的MVC程序中一起使用。MVC实现这些通过使用一个集合的转换,global.asax.cs文件中写定义路由的模版。这些模版将HTTP请求与控制器和动作方法联系在一起。当一个HTTP请求一个路由系统的时候,它会选择使用哪一个方法运行以返回相应的视图。

  global.asax.cs文件中定义这些模版,如{controller}/{action}/{id}     (PS:路由的选择在之前的文章中都有,可以查看,自己也是想用来巩固自己已有的知识)

(PS:现在发现自己没有一些国外优秀的IT网站,一些深层次的文章自己也看得迷迷糊糊,希望大家能推荐几个好的网站或者一些IT大神的BLOG,自己也想加倍地学习,给自己时间真心不多,学习的时间真心少了,3Q)

  

006.ASP.NET MVC ActionResults说明的更多相关文章

  1. ASP.NET MVC 基础

    ASP.NET MVC oo1 Mvc准备工作课程安排:ORM->AspNet MVC开发环境:VS2012/VS2013SqlServer2008/2005主讲Asp.Net Mvc4 Raz ...

  2. ASP.Net MVC 之FileResult

    FileResult是一个基于文件的ActionResult,利用FileResult我们可以很容易地将从某个物理文件的内容响应给客户端.ASP.NET MVC定义了三个具体的FileResult,分 ...

  3. C# 6 与 .NET Core 1.0 高级编程 - 41 ASP.NET MVC(上)

    译文,个人原创,转载请注明出处(C# 6 与 .NET Core 1.0 高级编程 - 41 ASP.NET MVC(上)),不对的地方欢迎指出与交流. 章节出自<Professional C# ...

  4. Professional C# 6 and .NET Core 1.0 - Chapter 41 ASP.NET MVC

    What's In This Chapter? Features of ASP.NET MVC 6 Routing Creating Controllers Creating Views Valida ...

  5. Asp.net mvc 知多少(五)

    本系列主要翻译自<ASP.NET MVC Interview Questions and Answers >- By Shailendra Chauhan,想看英文原版的可访问http:/ ...

  6. ASP.NET MVC扩展库

    很多同学都读过这篇文章吧 ASP.NET MVC中你必须知道的13个扩展点,今天给大家介绍一个ASP.NET MVC的扩展库,主要就是针对这些扩展点进行.这个项目的核心是IOC容器,包括Ninject ...

  7. ASP.NET MVC 源码分析(一)

    ASP.NET MVC 源码分析(一) 直接上图: 我们先来看Core的设计: 从项目结构来看,asp.net.mvc.core有以下目录: ActionConstraints:action限制相关 ...

  8. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库

    在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...

  9. 使用Visual Studio 2015 开发ASP.NET MVC 5 项目部署到Mono/Jexus

    最新的Mono 4.4已经支持运行asp.net mvc5项目,有的同学听了这句话就兴高采烈的拿起Visual Studio 2015创建了一个mvc 5的项目,然后部署到Mono上,浏览下发现一堆错 ...

随机推荐

  1. 原创:各种normalize函数实现的性能和精度大比拼

    ///////////////////////////////////////////////////////////////////////// // // Performance benchmar ...

  2. mysql --initialize specified but the data directory has files in it

    删除 *.ini 文件中的datadir=“....”目录下的文件,即可.

  3. pageadmin自助建站 网站目录权限的设置方法

    在用pageadmin网页设计的时候遇到各种问题可以参考官网教程网站目录权限的设置方法 网站目录必须设置读取和写入权限,否则后台解压,删除文件,在线上传等功能都无法正常使用,下面讲解本机和服务器配置目 ...

  4. xshell远程连接虚拟机

    xshell百度网盘下载地址: 链接: https://pan.baidu.com/s/1cNn458wUyKNOcAxQ8vEPQg密码: 8vrw 安装xshell,步骤很简单这里就不多说了 if ...

  5. 初探 模拟退火算法 POJ2420 HDU1109

    模拟退火算法来源于固体退火原理,更多的化学物理公式等等这里不再废话,我们直接这么来看 模拟退火算法简而言之就是一种暴力搜索算法,用来在一定概率下查找全局最优解 找的过程和固体退火原理有所联系,一般来讲 ...

  6. Logstash 收集 IIS 日志

    日志样例 查看 IIS 日志配置,选择格式为 W3C(默认字段设置)保存生效. 2016-02-25 01:27:04 112.74.74.124 GET /goods/list/0/1.html - ...

  7. CiSCO 交换机配置 SSH 登陆

    CiSCO 交换机配置 SSH 登陆 题目:在三层交换机上仅运行 SSH 服务,且用户名和密码的方式登录交换机. (一)了解主机名与域名 ​ 1."主机名" 为该设备的名称 ​ 2 ...

  8. windows下安装ubuntu15.04

    本文主要介绍windows下安装ubuntu15.04,对与其他的版本也是适用的.现在要讲的是一种最简单ubuntu的安装方式. 1软件下载 1.磁盘分区工具DiskGenius 2.启动项修改工具E ...

  9. IDEA 直接点击运行执行正常,命令行下面执行Jar包出现部分乱码的情况。

    解决方案如上: 有个Springboot项目为了测试方便,模型类用中文作为字段属性,封装成Odata格式,在通过Springboot发布并打成jar包. 通过命令行启动jar包里面的Springweb ...

  10. oracle安装注意

    安装环境:widows7相关教程:https://jingyan.baidu.com/article/4d58d5411e16de9dd4e9c0ec.html oracle安装情况:标准版2.8Go ...