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:与前台交互的时候(一般来说是查询操作)有一些数据字段是那一张表里面没有囊 ...
随机推荐
- RPA系列之(二)-UIPath学习目录
如何一步步渐入佳境,跟着目录一点一点来 UiPath简介 UiPath下载安装与激活 UiPath第一个案例Hello World UiPath变量的介绍和使用-1 UiPath变量的介绍和使用-2 ...
- elasticsearch 基于 rollover 管理按时间递增的索引 合并 删除
https://www.elastic.co/cn/blog/managing-time-based-indices-efficiently Anybody who uses Elasticsearc ...
- Pycharm 个人认为舒服漂亮又好用的主题风格
又开始和code打交道了系列…… 实验室换了新电脑,故而,重新安装了各种软件,乃至重新配置 Pycharm主题,找了好久,终于找到,想着应该mark一下,以备下次需要. 个人认为 Monokai 这 ...
- react项目添加本地音频
<audio src="./res/audio/alarm.mp3" autoplay="autoplay" loop="loop" ...
- 【题解】有限制的排列 [51nod1296]
[题解]有限制的排列 [51nod1296] 传送门:有限制的排列 \([51nod1296]\) [题目描述] 给出 \(n,m_1,m_2\) 和 \(\{a[1],a[2]...a[m_1]\} ...
- [转] service worker初探:超级拦截器与预缓存
在2014年,W3C公布了service worker的草案,service worker提供了很多新的能力,使得web app拥有与native app相同的离线体验.消息推送体验. service ...
- spring cloud应用
1.什么是注册中心 (1)就是首先有一个eureka server,服务的注册与发现的中心(2)你如果写好了一个服务,就可以将其注册到eureka server上去(3)然后别人的服务如果要调用你的服 ...
- Quartz基础调度框架-第二篇服务
很多应用场景Quartz运行于Windows服务 Conf 在这个基本结构里 是用来存放配置 和上一篇 控制台运行的一样的结构 jobs.xml 的配置清单 <!-- 任务配置--> & ...
- drf--ModelSerializers序列化
目录 drf--ModelSerializers序列化 项目准备 配置 settings.py 路由 多表设计 表关系分析 创建models 模型序列化 自定义模型序列化 api/serializer ...
- python基础知识(一)
Python基础知识 计算基础知识 1.cpu 人类的大脑 运算和处理问题 2.内存 临时存储数据 断电就消失了 3.硬盘 永久存储数据 4.操作系统 调度硬件设备之间数据交互 python的应用和历 ...