在做项目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 == )
{
return Json(AjaxResult.Error("无要上传的文件"));
}
var file = Request.Files[];
if (file == null)
{
return Json(AjaxResult.Error("无要上传的文件"));
}
if (file.ContentLength > * * )
{
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();
var url=UpyunHelper.UpLoad(file.InputStream,bucketType,filePath,fileName);
var rtnUrl = UpyunHelper.ProcessUrl(url,bucketType);
return Json(AjaxResult.Success(rtnUrl, "上传成功"));
}
}

MVC开发中自定义返回类型的更多相关文章

  1. MVC3中Action返回类型ActionResult类型

    MVC3中Action返回类型ActionResult在System.Web.Mvc命名空间中.这些包含在控制器中的方法,我们称为控制器中的 Action,比如:HomeController 中的 I ...

  2. “全栈2019”Java第五十八章:多态中方法返回类型可以是子类类型

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  3. Spring MVC控制层的返回类型--String类型与Bean类型

    SpringMVC控制层的返回类型形式多样,现拿其中的两种--String类型与Bean类型作以说明. 一.测试项目的结构 说明:(jsp的名字没起好) 控制层:UserController.java ...

  4. 开发MOSS自定义字段类型

    前段时间,由于刚好项目定制的需要,笔者就开发了几个自定义字段类型.在这抽空做个详细笔记,方便初学者学习.这方面的资料也很多,如果自身觉得不大明白可以参考下SDK和网上的相关文章.本章的目的主要是给新手 ...

  5. 【Swift】IOS开发中自定义转场动画

    在IOS开发中,我们model另外一个控制器的时候,一般都使用默认的转场动画. 其实我们可以自定义一些转场动画.达到不同的转场效果. 步骤如下:(photoBrowser是目标控制器) 1.在源控制器 ...

  6. golang中自定义一些类型和对应类型的指针方法

    package main import "fmt" // 项目开发中可以为type声明的类型编写一些方法,从而实现对象.方法的操作 // 声明类型 type myInt int / ...

  7. asp.net mvc视图中使用entitySet类型数据时提示出错

    asp.net mvc5视图中使用entitySet类型数据时提示以下错误 检查了一下引用,发现已经引用了System.Data.Linq了,可是还是一直提示出错, 后来发现还需要在Views文件夹下 ...

  8. c语言中自定义bool类型模板

    首先,c语言中没有bool类型,只有c++中有,所以需要自定义,即c中表示bool类型的方法: 1.模板1 typedef int bool; #define false 0 #define true ...

  9. mvc开发中DTO,DO,FROM的区别

    DO:数据库实体类映射到model里的实体类,每个字段都和数据库相对应,一般来说开发的时候不要去添加或者修改里面的实体 DTO:与前台交互的时候(一般来说是查询操作)有一些数据字段是那一张表里面没有囊 ...

随机推荐

  1. 本地项目git初始化并提交远程仓库

    1.先在远程仓库(如github)创建项目,为了避免错误,不要初始化 README, license, 或者gitignore文件 . 2.打开Terminal终端 3.切换到你的本地项目目录 4.初 ...

  2. Spring JDBC最佳实践(1)

    原文地址:https://my.oschina.net/u/218421/blog/38513 Spring提供了两种使用JDBC API的最佳实践,一种是以JdbcTemplate为核心的基于Tem ...

  3. PostgreSQL中的Toast Pointer

    1.分析背景 在使用数据库的过程中(PG的版本为9.2),遇到了错误"missing chunk number 0 for toast value XX in pg_toast_2619&q ...

  4. 前端与算法 leetcode 242. 有效的字母异位词

    目录 # 前端与算法 leetcode 242. 有效的字母异位词 题目描述 概要 提示 解析 解法一:哈希表 解法二:数组判断字符出现次数 解法三:转换字符串 算法 传入测试用例的运行结果 执行结果 ...

  5. [转帖]如何获得一个RAC Oracle数据库(从Github - oracle/docker-images) - 本地版 ---暂时未做实验.

    如何获得一个RAC Oracle数据库(从Github - oracle/docker-images) - 本地版 2019-11-09 16:35:30 dingdingfish 阅读数 32更多 ...

  6. 修改host文件加速访问github

    修改本地电脑系统 hosts 文件C:\Windows\System32\drivers\etc,直接在最后加入以下代码 192.30.253.112 github.com 192.30.253.11 ...

  7. 分布式系统根基:物理时钟和Lamport逻辑时钟

    分布式系统解决了传统单体架构的单点问题和性能容量问题,另一方面也带来了很多的问题,其中一个问题就是多节点的时间同步问题:不同机器上的物理时钟难以同步,导致无法区分在分布式系统中多个节点的事件时序.19 ...

  8. 换个语言学一下 Golang (10)——并行计算

    如果说Go有什么让人一见钟情的特性,那大概就是并行计算了吧. 做个题目 如果我们列出10以下所有能够被3或者5整除的自然数,那么我们得到的是3,5,6和9.这四个数的和是23.那么请计算1000以下( ...

  9. 米尔科技MPSoC开发板评测

    米尔科技推出的MYD-CZU3EG开发板搭载的就是UltraScale+ MPSoC平台器件 — XCZU3EG,它集成了四核Cortex-A53 处理器,双核 Cortex-R5 实时处理单元以及M ...

  10. React Children 使用

    React 有一个特殊的属性children, 主要用于组件需要渲染内容,但它并不知道具体要渲染什么内容,怎么会有这种使用场景?确实比较少,但并不是没有,比如弹出框.当你写一个弹出框组件的时候,你知道 ...