MVC開發中自定義返回類型

在作項目web的MVC中,會用到返回值的問題,咱們通常使用AjaxResult的返回值,根據本身的須要進行自定義,以下參考:web

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對象。服務器

 使用就簡單了,以下調用:ide

    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, "上傳成功"));
        }
    }
相關文章
相關標籤/搜索