当前位置: 代码网 > it编程>编程语言>Asp.net > MVC中Action方法的返回类型介绍

MVC中Action方法的返回类型介绍

2024年05月18日 Asp.net 我要评论
mvc中的action方法的返回值一般有以下几种:类型s说明emptyresult不进行任何操作contentresult将指定内容作为文本输出jsonresult输出json字符串javascrip

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com