MVC开发中自定义返回类型

在做项目web的MVC中,会用到返回值的问题,我们一般使用AjaxResult的返回值,根据自己的需要进行自定义,如下参考:

复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace ToolsUse.CommonHelper
{
    public class AjaxResult
    {
        /// <summary>
        /// 是否产生错误
        /// </summary>
        public bool IsError { get; set; }

        /// <summary>
        /// 错误信息,或者成功信息
        /// </summary>
        public string Message { get; set; }

        /// <summary>
        /// 成功可能时返回的数据
        /// </summary>
        public object Data { get; set; }

        #region Error
        public static AjaxResult Error()
        {
            return new AjaxResult
            {
                IsError = true
            };
        }
        public static AjaxResult Error(string message)
        {
            return new AjaxResult
            {
                IsError = true,
                Message = message
            };
        }
        public static AjaxResult Error(object data, string message)
        {
            return new AjaxResult
            {
                IsError = true,
                Message = message,
                Data = data
            };
        }
        #endregion

        #region Success
        public static AjaxResult Success()
        {
            return new AjaxResult
            {
                IsError = false
            };
        }
        public static AjaxResult Success(string message)
        {
            return new AjaxResult
            {
                IsError = false,
                Message = message
            };
        }
        public static AjaxResult Success(object data)
        {
            return new AjaxResult
            {
                IsError = false,
                Data = data
            };
        }
        public static AjaxResult Success(object data, string message)
        {
            return new AjaxResult
            {
                IsError = false,
                Data = data,
                Message = message
            };
        }
        #endregion

        /// <summary>
        /// 返回当前对象JSON字符串
        /// </summary>
        /// <returns></returns>
        public override string ToString()
        {
            return JSON.FormatString(this);
        }
    }
}
复制代码

另外,你可以修改返回错误的时候,对应的Exception对象。

 使用就简单了,如下调用:

复制代码
    public class TestController : Controller
    {
        // GET: UpYunTest
        public ActionResult Index()
        {
            return View();
        }

        public ActionResult Test1()
        {
            return View();
        }

        public JsonResult UploadTest()
        {
            //文件检测
            if (Request.Files.Count == 0)
            {
                return Json(AjaxResult.Error("无要上传的文件"));
            }
            var file = Request.Files[0];
            if (file == null)
            {
                return Json(AjaxResult.Error("无要上传的文件"));
            }
            if (file.ContentLength > 2 * 1024 * 1024)
            {
                return Json(AjaxResult.Error("文件过大"));
            }
            var extensionName = Path.GetExtension(file.FileName);
            if (!CloudFileHelper.ImageExtensions.Contains(extensionName))
            {
                return Json(AjaxResult.Error("请上传图片格式的文件"));
            }
            var bucketType = UpyunHelper.GetFileType(extensionName+ "_comprehensive ");//设置只传到综合的服务器kwan-upyun中
            var fileName = UpyunHelper.BuildFileName(extensionName);
            var filePath = UpyunHelper.BuildFilePath(1);
            var url=UpyunHelper.UpLoad(file.InputStream,bucketType,filePath,fileName);
            var rtnUrl = UpyunHelper.ProcessUrl(url,bucketType);
            return Json(AjaxResult.Success(rtnUrl, "上传成功"));
        }
    }
复制代码

 

posted on   jack_Meng  阅读(667)  评论(0编辑  收藏  举报

编辑推荐:
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· DeepSeek “源神”启动!「GitHub 热点速览」
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8
点击右上角即可分享
微信分享提示

喜欢请打赏

扫描二维码打赏

支付宝打赏

主题色彩