分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

MVC基础教程 ???Action的方法返回值

发布时间:2023-09-06 02:22责任编辑:顾先生关键词:MVC

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

MVC基础教程 ???Action的方法返回值

原文地址:https://www.cnblogs.com/guoyu8/p/9944701.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved