MVC中的Action方法的返回值一般有以下几种:

类型

s说明

EmptyResult

不进行任何操作

ContentResult

将指定内容作为文本输出

JsonResult

输出JSON字符串

JavaScriptResult

输出JavaScript

RedirecResult、RedirectToRouteResult

重定向到给定的URL中

FileResult(抽象类)

FilePathResult、FileContentResult、FileStreamResult

文件输出

ViewResultBase(抽象类)

ViewResult、PartialViewResult

调用视图输出

Controller控制器代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.IO; namespace MvcActionReturnType.Controllers
{
public class HomeController : Controller
{
/// <summary>
/// 1、返回一个ViewResult对象
/// </summary>
/// <returns></returns>
public ActionResult Index()
{
return View();
} /// <summary>
/// 2、返回一个json格式的数据
/// </summary>
/// <returns></returns>
public ActionResult Json()
{
var book = new { BookId = , BookName = "MVC框架" };
return Json(book, JsonRequestBehavior.AllowGet);
} /// <summary>
/// 3、返回JavaScript
/// </summary>
/// <returns></returns>
public ActionResult JavaScript()
{
string js = "<script>alert('Welcome to ASP.NET MVC')</script>";
return JavaScript(js);
} /// <summary>
/// 4、返回FilePath
/// </summary>
/// <returns></returns>
public ActionResult FilePath()
{
//return File("~/Content/校长 - 带你去旅行.mp3", "audio/mp3");
return new FilePathResult("~/Content/校长 - 带你去旅行.mp3", "audio/mp3");
} /// <summary>
/// 5、返回FileContent
/// </summary>
/// <returns></returns>
public ActionResult FileContent()
{
string content = "Welcome To ASP.NET MVC";
byte[] contents = System.Text.Encoding.UTF8.GetBytes(content);
return File(contents, "text/plain");
} /// <summary>
/// 6、返回FileStream
/// </summary>
/// <returns></returns>
public ActionResult FileStream()
{
string content = "Welcome To ASP.NET MVC";
byte[] contents = System.Text.Encoding.UTF8.GetBytes(content);
FileStream fs = new FileStream(Server.MapPath("~/Content/2 开发环境下载安装说明.doc"), FileMode.Open);
return File(fs, "application/msword");
} /// <summary>
/// 7、返回 ContentResult
/// </summary>
/// <returns></returns>
public ActionResult ContentResult()
{
string content = "<h1>Welcome To ASP.NET MVC</h1>";
return Content(content);
} public ActionResult About()
{
ViewBag.Message = "Your application description page."; return View();
} public ActionResult Contact()
{
ViewBag.Message = "Your contact page."; return View();
}
}
}

视图代码如下:

@{
ViewBag.Title = "Home Page";
} <div>
1.输出json
<p>
@Html.ActionLink("生成Json", "Json");
</p> 2.输出js
<script src=@Url.RouteUrl(new { action="JavaScript"}) type="text/javascript"> </script>
<p>
@(Url.RouteUrl(new { controller = "home", action = "JavaScript" }));
@Html.ActionLink("生成JavaScript", "JavaScript");
</p> 3.播放音乐
<p>
@Html.ActionLink("播放MP3", "FilePath");
</p>
4.查看文本文件
<p>
@Html.ActionLink("查看文件内容", "FileContent");
</p>
5.链接文件流
<p>
@Html.ActionLink("访问Doc", "FileStream");
</p>
6.输出文本
<p>
@Html.ActionLink("输出文本", "ContentResult");
</p>
</div>

请看下面的两段代码:

public int Sum(int num1, int num2)
{
int sum = num1 + num2;
return sum;
} public ActionResult Sum2(int num1, int num2)
{
int sum = num1 + num2;
return Content(sum.ToString());
}

有些时候,我们希望把Action定义成一种更自然的形式,比如我们希望Action Sum2做一个求和的计算,传入的参数是整数,计算的结果也是整数,那么可不可以返回一个整数的结果呢?

如上面的两个方法所示,两个方法的效果是等价的,也就是会把整形的数据转换成字符串类型,然后封装成ContentResult类型,这个过程是MVC框架自动帮助我们完成的。

返回的值

说明

null

EmptyResult

void

EmptyResult

对象(ActionResult之外的类型)

ContentResult

在Action方法中,任何类型的返回值都是可以的,如果他不是ActionResult类型,会封装成ActionResult类型的对象,如上表所示。

MVC教程五:Action方法的返回类型的更多相关文章

  1. Web API 方法的返回类型、格式器、过滤器

    一.Action方法的返回类型 a) 操作方法的返回类型有四种:void.简单或复杂类型.HttpResponseMessage类型.IHttpActionResult类型. b) 如果返回类型为vo ...

  2. Effective Java 第三版——47. 优先使用Collection而不是Stream来作为方法的返回类型

    Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...

  3. ASP.NET MVC教程五:ASP.NET MVC中的路由

    一.概述 在ASP.NET MVC架构中,控制器在3大核心构件中处于中心地位,通过控制器支配模型和视图,然而从浏览器发出的请求到控制器还需要路由的协助,路由将特定的请求和控制器的动作对应起来. 在AS ...

  4. action方法不返回

    当被请求的action方法中还有资源没有释放时,请求方法是不会返回的,会一直停留在方法中,即使是最后一行,因为请求方法一旦返回,那方法中的资源,引用就没有位置住了,所以所请求的方法会一直不返回,直到方 ...

  5. Struct2_使用Ajax调用Action方法并返回值

    一.Login.jsp 1.<head>引入jquery: <script type="text/javascript" src="http://aja ...

  6. MVC – 6.控制器 Action方法参数与返回值

      6.1 Controller接收浏览器数据   a.获取Get数据 : a1:获取路由url中配置好的制定参数: 如配置好的路由: 浏览器请求路径为: /User/Modify/1 ,MVC框架获 ...

  7. MVC – 6.控制器 Action方法参数与返回值

    6.1 Controller接收浏览器数据 a.获取Get数据 : a1:获取路由url中配置好的制定参数: 如配置好的路由: 浏览器请求路径为: /User/Modify/1 ,MVC框架获取请求后 ...

  8. Android JNI之调用JAVA方法的返回类型签名

    从http://blog.csdn.net/lonelyroamer/article/details/7932787截取的 如何签名: 下面看看Sign签名如何写,来表示要取得的属性或方法的类型. 1 ...

  9. 【MVC 过滤器的应用】ASP.NET MVC 如何统计 Action 方法的执行时间

    代码如下: using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; u ...

随机推荐

  1. Vivado抓取信号

    作者:桂. 时间:2018-05-03  21:16:03 链接:www.cnblogs.com/xingshansi/p/8987608.html 前言 FPGA调试需要抓取特定信号,一个直观的思路 ...

  2. Oozie介绍

    1. Hadoop常见调度框架: (1)Linux Crontab:Linux自带的任务调度计划,在任务比较少的情况下,可以使用这种方式,直接执行脚本,例如添加一个执行计划: 0 12 * hive ...

  3. React Native在开发过程中遇到的一些问题(俗称:坑)

    4900 服务器地址错误 运行时产生以下错误:Could not connect to development server. 1.URL地址设置 问题: Could not connect to d ...

  4. 中秋节福利---HTML5-玉兔吃月饼游戏

    中秋节快来了.送大家点福利: HTML5-玉兔吃月饼游戏 效果图: 代码下载:点击这里!!

  5. 如何让 zend studio 10 识别 Phalcon语法并且进行语法提示

    让 zend studio 10 识别 Phalcon语法并且进行语法提示 https://github.com/rogerthomas84/PhalconPHPDoc 下载解压后,把里面 phalc ...

  6. convert2utf8withbom

    很久以前给同事要的转码bash 当时windows和mac总是出现中文注释乱码的情况,让人心塞的难过.又因为是老项目,现有源码太多了,不可能改模板重新创建.只能跑一遍这个玩意儿了…… #!/bin/b ...

  7. 转webstorm的快捷键

    止 静 java android 转-webstorm快捷键 默认配置-Eclipse的常用快捷键对照表 查找/代替 Webstorm快捷键 Eclipse快捷键 说明 ctrl+shift+N ct ...

  8. Mac git pull失败,最新操作系统导致 SSH issues with Mac OS X High Sierra

    Mac 升级到最新操作系统ssh加密方式和gitlub不一样,导致不能git pull  如:mac是md5加密方式,gitlut是aes-256-cbc加密方式 解决方法如下 A coworker ...

  9. 【Java】PreparedStatement VS Statement

    创建时: Statement statement = conn.createStatement();    PreparedStatement preStatement = conn.prepareS ...

  10. 用Python脚本在豆瓣音乐人小站上下载未开放下载的歌曲

    [本文出自天外归云的博客园] 第一步,去你要下载的音乐人小站页面: 第二步,点开要下载的歌,在播放页面F12进入调试模式,在Network视图下可以看到mp3文件所在的url: 第三步,上脚本(需安装 ...