ASP.NET MVC ajax处理 AjaxResult
1、统一ASPNET MVC 对ajax请求响应格式定义,方便前端统一处理ajax结果.
1)定义程序返回结果数据格式
/// <summary>
/// 执行结果
/// </summary>
/// <typeparam name="T"></typeparam>
public class RunResult<T>
{
/// <summary>
/// 操作状态
/// </summary>
public ResultStatus Status { get; set; }
/// <summary>
/// 操作异常
/// </summary>
public Exception Exception { get; set; }
/// <summary>
/// 数据结果
/// </summary>
public T Result { get; set; }
/// <summary>
/// 操作消息
/// </summary>
public string Message { get; set; }
}
2)定义执行结果状态
/// <summary>
/// 执行结果
/// </summary>
/// <typeparam name="T"></typeparam>
public class RunResult<T>
{
/// <summary>
/// 操作状态
/// </summary>
public ResultStatus Status { get; set; }
/// <summary>
/// 操作异常
/// </summary>
public Exception Exception { get; set; }
/// <summary>
/// 数据结果
/// </summary>
public T Result { get; set; }
/// <summary>
/// 操作消息
/// </summary>
public string Message { get; set; }
}
3)返回前端数据格式
public class AjaxEntity<T>
{
[JsonProperty(PropertyName = "Success")]
public bool Success { get; set; } [JsonProperty(PropertyName = "Message")]
public string Message { get; set; } [JsonProperty(PropertyName = "Data")]
public T Data { get; set; }
}
4)定义asp.net mvc 中 ajax ActionResult
public class AjaxResult<T> : CustomResult<AjaxEntity<T>>
{
private readonly RunResult<T> _runResult; public AjaxResult(RunResult<T> runResult)
{
_runResult = runResult;
} /// <summary>
///
/// </summary>
/// <returns></returns>
public override AjaxEntity<T> GetObject()
{
AjaxEntity<T> entity = new AjaxEntity<T> { Data = _runResult.Result };
if (_runResult.Result is bool)
{
entity.Success = _runResult.Status == ResultStatus.Success && Convert.ToBoolean(_runResult.Result);
}
else
{
entity.Success = _runResult.Status == ResultStatus.Success;
}
entity.Data = _runResult.Result;
entity.Message = _runResult.Message;
return entity;
}
}
ASP.NET MVC ajax处理 AjaxResult的更多相关文章
- ASP.NET MVC Ajax.ActionLink 简单用法
ASP.NET MVC 项目中,如何使用类似于 iframe 的效果呢?或者说 Ajax 局部刷新,比如下面操作: 我们想要的效果是,点击 About 链接,页面不刷新(地址栏不变),然后下面的内容进 ...
- Asp.Net MVC ajax调用 .net 类库问题
如果你还在为 ajax 调用 .net 类库还束手无策的话,相信这篇博客将帮助你解决这个世纪问题! 因为Visual Studio 内置了asp.net mvc ,不过当你添加asp.net mvc项 ...
- Asp.Net MVC Ajax
将ASP.NET MVC中的form提交改为ajax提交 在ASP.NET MVC视图中通过 @using (Html.BeginForm()) 产生的是form表单提交代码,可以用javascrip ...
- ASP.NET MVC Ajax 伪造请求
1.前言 CSRF(Cross-site request forgery)跨站请求伪造,ASP.NET MVC 应用通过使用AJAX请求来提升用户体验,浏览器开发者工具可以一览众山小,就很容易伪造了请 ...
- ASP.NET MVC AJAX 请求中加入 antiforgerytoken 解决“所需的防伪表单字段“__RequestVerificationToken”不存在”问题
在ASP.NET mvc中如果在表中使用了@Html.AntiForgeryToken(),ajax post不会请求成功 解决方法是在ajax中加入__RequestVerificationToke ...
- ASP.NET MVC AJAX的调用示例
@{ ViewBag.Title = "Home Page"; //下面引用Jquery和unobtrusive-ajax } @Scripts.Render("~/bu ...
- asp.net mvc ajax 异步刷新例子
这几天在asp.net中使用ajax来做异步刷新,这里整理一下 1.首先看前台页面点击的时候调用函数 function shuxin() { $.ajax( { url: "GetValue ...
- asp.net MVC Ajax.BeginForm 异步上传图片的问题
当debug到这里,你们就发现不管是 Request.Files["Upload"]亦或 Request.Files[0] 都不会取到文件流. 这就是我要说的,当使用Ajax.Be ...
- Asp.net Mvc Ajax.BeginForm提交表单
之前Mvc中一直用Html.BeginForm提交表单,即如下: @using (Html.BeginForm("Add", "News", FormMetho ...
随机推荐
- Cesium随笔(4)去掉cesium和bing地图的logo 【转】
在开发过程中timeline上面的logo是不是有些碍眼嘞,下面写一下去掉的方法: 在style标签中添加 css: .cesium-widget-credits{ display:none!im ...
- 前端要给力之:URL应该有多长?
URL到底应该有多长?我为什么要提这个问题呢?有许多优化指南里都写着:要尽量减小COOKIE.缩短URL,以及尽可能地使用GET请求等等,以便优化WEB页面的请求和装载.但是,这种所谓“尽可能”.“尽 ...
- mysql数据库查询优化
上两周一直想办法提高查询速度,取得一点效果,解决了部分问题,记下来以便将来自己查看. 由于公司没有专门的DBA,我自己对mysql数据库也不是很熟悉,而且这个JAVA开发的网络审计系统的管理系统,是经 ...
- IOS之UITabBarController
在学习IOS开发过程中,针对于UITabBarController的使用也不少出现,UITabBarController和UINavigationController类似,UITabBarContro ...
- android_orm框架之greenDAO(一)
目录: 一.概述 二.下载并解压greenDAO相关资源 三.应用greenDAO框架 1.创建Java工程 2.添加类库支持 3.创建类 四.代码分析 五.使用greenDAO 六.源码下载 一.概 ...
- Quartz2D-二维画图引擎 、自己定义UI控件
// // MyDraw.m // 绘图 #import "MyDraw.h" @implementation MyDraw //Quartz2D 是一个二维绘图引擎 //自己定义 ...
- MySQL有关1042 Can’t get hostname for your address的问题分析解决过程
[Comment 1] 前同事企鹅上面说他安装的mysql 5.5,发现用mysql客户端远程连接的时候,报1042-Can’t get hostname for your address错误,但是 ...
- mac 连接windows 共享内容
mac 连接windows 共享内容 一:场景 在win7上下载了一个5G左右的系统文件,想弄到mac上,本打算用使用U盘,把文件从win7copy到mac电脑上: 可是U盘的分区是fat的,大于4G ...
- Oracle体系结构三(学习笔记)
- JDBC的简单操作
JDBC是一组能够执行SQL语句的API 由于传统的数据库操作方式需要程序员掌握各个不同的数据库的API,极其不便 因此java定义了JDBC这一标准的接口和类,为程序员操作数据库提供了统一的方式 J ...