MVC中Action方法的返回类型介绍
MVC中的Action方法的返回值一般有以下几种:
类型 |
s说明 |
---|---|
EmptyResult |
不进行任何操作 |
ContentResult |
将指定内容作为文本输出 |
JsonResult |
输出JSON字符串 |
JavaScriptResult |
输出JavaScript |
RedirecResult、RedirectToRouteResult |
重定向到给定的URL中 |
FileResult(抽象类) FilePathResult、FileContentResult、FileStreamResult |
文件输出 |
ViewResultBase(抽象类) 【MVC中Action方法的返回类型介绍】ViewResult、PartialViewResult |
调用视图输出 |
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{/// /// 1、返回一个ViewResult对象/// ///public ActionResult Index(){return View(); }/// /// 2、返回一个json格式的数据/// /// public ActionResult Json(){var book = new { BookId = 1, BookName = "MVC框架" }; return Json(book, JsonRequestBehavior.AllowGet); }/// /// 3、返回JavaScript/// /// public ActionResult JavaScript(){string js = ""; return JavaScript(js); }/// /// 4、返回FilePath/// /// public ActionResult FilePath(){//return File("~/Content/校长 - 带你去旅行.mp3", "audio/mp3"); return new FilePathResult("~/Content/校长 - 带你去旅行.mp3", "audio/mp3"); }/// /// 5、返回FileContent/// /// public ActionResult FileContent(){string content = "Welcome To ASP.NET MVC"; byte[] contents = System.Text.Encoding.UTF8.GetBytes(content); return File(contents, "text/plain"); }/// /// 6、返回FileStream/// /// 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"); }/// /// 7、返回 ContentResult/// /// public ActionResult ContentResult(){string content = "Welcome To ASP.NET MVC"; 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"; }1.输出json@Html.ActionLink("生成Json", "Json");
2.输出js@(Url.RouteUrl(new { controller = "home", action = "JavaScript" })); @Html.ActionLink("生成JavaScript", "JavaScript");
3.播放音乐@Html.ActionLink("播放MP3", "FilePath");
4.查看文本文件@Html.ActionLink("查看文件内容", "FileContent");
5.链接文件流@Html.ActionLink("访问Doc", "FileStream");
6.输出文本@Html.ActionLink("输出文本", "ContentResult");
请看下面的两段代码:
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 |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
推荐阅读
- 如何创建一个创建MySQL数据库中的datetime类型
- go中string、int、float相互转换的实现示例
- c语言表白源代码
- c语言中a|c语言中a 的用法,C语言中#define的用法
- c语言中的标识符怎么表示,C语言中用宏怎么构造标识符
- goalng 中结构体方法的区别使用
- Dart中的内置数据类型简介
- python中的sys模块和os模块
- Golang中空接口的使用
- Goalng中 空结构体的使用