MVC教程:Action方法的返回类型

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

类型

说明

EmptyResult

不进行任何操作

ContentResult

将指定内容作为文本输出

JsonResult

输出JSON字符串

JavaScriptResult

输出JavaScript

RedirecResult、RedirectToRouteResult

重定向到给定的URL中

FileResult(抽象类)

FilePathResult、FileContentResult、FileStreamResult

文件输出

ViewResultBase(抽象类)

ViewResult、PartialViewResult,ActionResult

调用视图输出

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 = 1, 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类型的对象,如上表所示。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
完整全套资源下载地址:https://download.csdn.net/download/qq_27595745/70761177 【完整课程列表】 完整版Java web开发教程PPT课件 Java开发进阶教程 第01章 JavaScript简介以及基本语法(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第02章 Dom模型,控制客户端元素(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第03章 表单验证,常用函数(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第04章 自定义web服务器(共14页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第06章 SERVLET(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第07章 JSP语法及运行过程(共13页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第08章 JSP内置对象(共22页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第09章 jstl、el、java bean(共18页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第10章 过滤器、监听器、自定义标签(共19页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第11章 AJAX实现(共11页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第12章 自定义mvc框架(共11页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第13章 spring ioc aop(共18页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第14章 spring mvc介绍,原理以及搭建(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第15章 spring mvc核心对象拦截器(共26页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第17章 自定义orm框架(共11页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第18章 mybatis框架的搭建以及应用(共13页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第19章 mybatis高级应用(共21页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第20章 数据库连接池,缓存(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第22章 常用框架的介绍以及环境搭建(共16页).pptx JS课程案例ebookHTML\网上书店需求文档.doc

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值