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 == )
{
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开发中自定义返回类型的更多相关文章
- MVC3中Action返回类型ActionResult类型
MVC3中Action返回类型ActionResult在System.Web.Mvc命名空间中.这些包含在控制器中的方法,我们称为控制器中的 Action,比如:HomeController 中的 I ...
- “全栈2019”Java第五十八章:多态中方法返回类型可以是子类类型
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- Spring MVC控制层的返回类型--String类型与Bean类型
SpringMVC控制层的返回类型形式多样,现拿其中的两种--String类型与Bean类型作以说明. 一.测试项目的结构 说明:(jsp的名字没起好) 控制层:UserController.java ...
- 开发MOSS自定义字段类型
前段时间,由于刚好项目定制的需要,笔者就开发了几个自定义字段类型.在这抽空做个详细笔记,方便初学者学习.这方面的资料也很多,如果自身觉得不大明白可以参考下SDK和网上的相关文章.本章的目的主要是给新手 ...
- 【Swift】IOS开发中自定义转场动画
在IOS开发中,我们model另外一个控制器的时候,一般都使用默认的转场动画. 其实我们可以自定义一些转场动画.达到不同的转场效果. 步骤如下:(photoBrowser是目标控制器) 1.在源控制器 ...
- golang中自定义一些类型和对应类型的指针方法
package main import "fmt" // 项目开发中可以为type声明的类型编写一些方法,从而实现对象.方法的操作 // 声明类型 type myInt int / ...
- asp.net mvc视图中使用entitySet类型数据时提示出错
asp.net mvc5视图中使用entitySet类型数据时提示以下错误 检查了一下引用,发现已经引用了System.Data.Linq了,可是还是一直提示出错, 后来发现还需要在Views文件夹下 ...
- c语言中自定义bool类型模板
首先,c语言中没有bool类型,只有c++中有,所以需要自定义,即c中表示bool类型的方法: 1.模板1 typedef int bool; #define false 0 #define true ...
- mvc开发中DTO,DO,FROM的区别
DO:数据库实体类映射到model里的实体类,每个字段都和数据库相对应,一般来说开发的时候不要去添加或者修改里面的实体 DTO:与前台交互的时候(一般来说是查询操作)有一些数据字段是那一张表里面没有囊 ...
随机推荐
- 【Gamma阶段】第九次Scrum Meeting
冰多多团队-Gamma阶段第九次Scrum会议 工作情况 团队成员 已完成任务 待完成任务 卓培锦 美化前端及编辑器界面,编辑器风格切换(添加夜间模式) UI界面手势切换 牛雅哲 添加scp工具,添加 ...
- 【python学习案例】python判断自身是否正在运行
需要引入psutil包: 实现思路: 1)用os.getpid()获取当前程序运行PID,将PID存入文件中 2)用psutil模块获取当前系统所有正在运行的pid 3)读取之前存入的PID,判断该P ...
- 《Linux就该这么学》培训笔记_ch06_存储结构与磁盘划分
<Linux就该这么学>培训笔记_ch06_存储结构与磁盘划分 文章最后会post上书本的笔记照片. 文章主要内容: Linux系统的文件存储结构(FHS标准) 物理设备命名规则(udev ...
- spring boot 从开发到上线(三)—AOP 异常监控、上报
在做这个项目的期间,看到一篇很有启发性的文章<程序员你为什么这么累>.对于初级程序员来说,拿到需求,第一反应是用什么技术来尽快的完成任务,这本身并没有问题.但长此以往,不仅被需求的更改搞得 ...
- 谷歌浏览器扩展程序中安装vue-devtools插件
1.下载vue-devtools插件 地址https://github.com/vuejs/vue-devtools 2.进入刚刚下载文件的目录下(最好路径中没有中文) npm install 再执行 ...
- OI之路
由于各种因素 学习.初赛.时间... 我的oi可能会结束, 我也不甘于放弃, 所以 综合今后的表现, 我再决定 以后我尽量写博客.
- 启动Sonar报错,ERROR: [1] bootstrap checks failed [1]: system call filters failed to install
错误提示信息: ERROR: [1] bootstrap checks failed[1]: system call filters failed to install; check the logs ...
- ArrayDeque详解
美人如斯! ArrayDeque是java中对双端队列的线性实现 一.特性 无容量大小限制,容量按需增长: 非线程安全队列,无同步策略,不支持多线程安全访问: 当用作栈时,性能优于Stack,当用于队 ...
- qbittorrent搜索插件合集
qbittorrent搜索 qbittorrent搜索一个很有特色的功能: 这里收集整理了一些公开网站的插件(Plugins for Public sites),并连 源py文件一起分享. qbitt ...
- SQL怎么实现SLEEP功能(等待时间) -(转载)
语法格式: WAITFOR DELAY N'小时数:分钟数:秒数.毫秒数' 等待100毫秒: SELECT GETDATE() WAITFOR DELAY N'00:00:00.100' SELECT ...