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 ...
随机推荐
- 第四章 CopyOnWriteArraySet源码解析
注:在看这篇文章之前,如果对CopyOnWriteArrayList底层不清楚的话,建议先去看看CopyOnWriteArrayList源码解析. http://www.cnblogs.com/jav ...
- 升级iOS10后http网页定位失效解决方案
最近我们在做项目时遇到这样一个新问题,用户在升级 iOS10 后,在 http 下使用 geolocation api 会报错,控制台输出 [blocked] Access to geolocatio ...
- GO语言基础语法
1. Go项目的目录结构 一般的,一个Go项目在GOPATH下,会有如下三个目录: project --- bin --- pkg --- src 其中,bin 存放编译后的可执行文件:p ...
- What's the difference between - (one hyphen) and — (two hyphens) in a command?
bash中看到这样的命令, curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash - sudo apt-get install - ...
- 创建并发布node.js module
创建node.js module. 创建一个文件夹,用来存放module. Cd到新创建的文件夹,运行npm init,会提示输入package的信息. 可以按照这个视频的来输入.Test com ...
- js 切换隐藏
先试试 显示\隐藏切换 脚本之家欢迎您 切换隐藏 <style type="text/css"> #thediv { width:200px; height:100px ...
- [HTML5] Avoiding CSS Conflicts via Shadow DOM CSS encapsulation
Shadow DOM is part of the web components specification. It allows us to ship self contained componen ...
- Servlet学习笔记(七)—— 自己定义过滤器的编写改进:自己定义实现FilterChain
笔记六中实现了三种过滤器:字符编码过滤.登录权限过滤.敏感词过滤,可是有个缺陷就是,限定了过滤顺序,而不能实现先进行request过滤.最后response过滤,而且中间几项过滤的顺序不能动态改变.所 ...
- 遭遇java.lang.NoClassDefFoundError: org/apache/tomcat/PeriodicEventListener
前天还正常的程序,今天忽然无法启动了,MyEclipse的Console提醒我如下错误: 严重: Error deploying web application directory rttsbizja ...
- Foreda8上安装CMake2.8.1.2
本机操作系统:Linux 2.6.23.1-42.fc8 #1 SMP Tue Oct 30 13:55:12 EDT 2007 i686 i686 i386 GNU/Linux 在本机上准备安装My ...