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. 清理kafka zookeeper

    ; ; /; rm -rf /app/zookeeper/logs/*; rm -rf /app/pet_kafka_emds2_cluster/kafka-logs/*; rm -rf /app/p ...

  2. 关于QueryCache的一次打脸

    [背景问题] 前一段时间给一套MySQL数据库加上了监控,运行一段时间后有人反馈监控到的insert,update,delete,select的数量中select的数量有像比 本应该的量少了不少! 我 ...

  3. django 用户管理系列:1 user

    :first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdow ...

  4. windows下bash终端--git-bash总汇

    git bash是一个比较好用的终端(win下),但有一些细节需要调整后才好用. 1.比如,登陆后终端的表格,以及个别符号显示为乱码. 解决方法: 1).点击git bash左上角,选择“option ...

  5. 给现有MVC项目增加Web API支持

    在MVC4中自带了Web API不再需要从Nuget中下载. Step1:增加System.Web.Http,System.Web.Http.WebHost,System.Net.Http三个程序集的 ...

  6. git 生成ssh keys

    最近从svn转到gitlab 记录一下如何生成ssh keys 首先下载GitExtensions246SetupComplete.msi并安装,如果已经安装了git,那么安装途中就跳过就行 安装完毕 ...

  7. Spring Cloud Consul

    1.2.0.RELEASE 该项目通过自动配置并绑定到Spring环境和其他Spring编程模型成语,为Spring Boot应用程序提供Consul集成.通过几个简单的注释,您可以快速启用和配置应用 ...

  8. HTML5学习笔记(三):语义化和新增结构元素

    在HTML5之前,使用机器来阅读一个网页是非常困难的,我们使用不同样式的div来标记不同的内容,所以实际上机器无法得知页面的哪个部分是正文,哪个部分是标题,那么在HTML5里,针对这个问题就引入了语义 ...

  9. 每日英语:Political Gridlock, Beijing Style

    To admirers outside the country, China's political system stands far above the dysfunctional democra ...

  10. cocoside 编译错误可能问题

    版本不对..查看/usr/xxx/.profile中console等的全局变量 安装了不和谐的版本..记得删除application/cosos 重新安装. 或者干掉cocostudio