zoukankan      html  css  js  c++  java
  • 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, "上传成功"));
            }
        }
  • 相关阅读:
    动态规划之 0-1背包问题及改进
    动态规划之矩阵连乘
    python3 入门 (四) 类与继承
    动态规划之最长公共子序列(LCS)
    java并发包分析之———AQS框架
    java并发包分析之———BlockingQueue
    java并发包分析之———Deque和LinkedBlockingDeque
    java并发包分析之———concurrentHashMap
    java并发包分析之———ConcurrentSkipListMap
    java并发包分析之———Atomic类型
  • 原文地址:https://www.cnblogs.com/mq0036/p/11630371.html
Copyright © 2011-2022 走看看