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的更多相关文章

  1. ASP.NET MVC Ajax.ActionLink 简单用法

    ASP.NET MVC 项目中,如何使用类似于 iframe 的效果呢?或者说 Ajax 局部刷新,比如下面操作: 我们想要的效果是,点击 About 链接,页面不刷新(地址栏不变),然后下面的内容进 ...

  2. Asp.Net MVC ajax调用 .net 类库问题

    如果你还在为 ajax 调用 .net 类库还束手无策的话,相信这篇博客将帮助你解决这个世纪问题! 因为Visual Studio 内置了asp.net mvc ,不过当你添加asp.net mvc项 ...

  3. Asp.Net MVC Ajax

    将ASP.NET MVC中的form提交改为ajax提交 在ASP.NET MVC视图中通过 @using (Html.BeginForm()) 产生的是form表单提交代码,可以用javascrip ...

  4. ASP.NET MVC Ajax 伪造请求

    1.前言 CSRF(Cross-site request forgery)跨站请求伪造,ASP.NET MVC 应用通过使用AJAX请求来提升用户体验,浏览器开发者工具可以一览众山小,就很容易伪造了请 ...

  5. ASP.NET MVC AJAX 请求中加入 antiforgerytoken 解决“所需的防伪表单字段“__RequestVerificationToken”不存在”问题

    在ASP.NET mvc中如果在表中使用了@Html.AntiForgeryToken(),ajax post不会请求成功 解决方法是在ajax中加入__RequestVerificationToke ...

  6. ASP.NET MVC AJAX的调用示例

    @{ ViewBag.Title = "Home Page"; //下面引用Jquery和unobtrusive-ajax } @Scripts.Render("~/bu ...

  7. asp.net mvc ajax 异步刷新例子

    这几天在asp.net中使用ajax来做异步刷新,这里整理一下 1.首先看前台页面点击的时候调用函数 function shuxin() { $.ajax( { url: "GetValue ...

  8. asp.net MVC  Ajax.BeginForm 异步上传图片的问题

    当debug到这里,你们就发现不管是 Request.Files["Upload"]亦或 Request.Files[0] 都不会取到文件流. 这就是我要说的,当使用Ajax.Be ...

  9. Asp.net Mvc Ajax.BeginForm提交表单

    之前Mvc中一直用Html.BeginForm提交表单,即如下: @using (Html.BeginForm("Add", "News", FormMetho ...

随机推荐

  1. Android下拉刷新-SwipeRefreshLayout

    现在市面上新闻类的App基本上都有下拉刷新,算是一个标配吧,网上关于下拉刷新的博客也有很多,实现方式可以使用开源的PullToRefresh,自定义ListView,或者可以直接使用LineLayOu ...

  2. Git的简单介绍

    每次看到别人写Git的文章,同学中也有用Git感觉很高大上的感觉,工作中用的是SVN,周末倒腾了一下Git,Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.Git 与 ...

  3. 无法执行 varchar 值到 varchar 的隐式转换,原因是,由于排序规则冲突,该值的排序规则未经解析。

    SELECT CONVERT(VARCHAR(100), 列名) FROM Table 提示错误: 无法执行 varchar 值到 varchar 的隐式转换,原因是,由于排序规则冲突,该值的排序规则 ...

  4. HDOJ-3785 寻找大富翁(优先队列)

    寻找大富翁 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  5. scala 学习笔记十 一 伴生对象

    1.介绍 a.所谓伴生对象就是和某个class同名的object, 并且object 必须和class在同一个scala源文件中. b.在scala中,没有像java中的静态类,静态方法和静态成员等, ...

  6. win7+iis7+asp+.net+php环境配置

    一.我们先来配置一下iis: f 1. 点击[開始]->[控制面板]->点击[程序和功能]进入下一步 2. 然后,在左側点击[打开或关闭Windows功能].然后会跳出来一个框 3. 開始 ...

  7. PHP基本的语法的小结

    一.PHP能做什么? PHP能做什么?我认为它非常强大,仅仅要我能想到的,它都能做,仅仅是我技术能力还不行╮(╯﹏╰)╭.好吧,一张图.基本了解一下吧(ps:PHP的功能不局限于此( ^_^ )) 图 ...

  8. PHP的CLI综合

    tip1:传入参数 使用标准的输入和输出    PHP CLI会定义三个常量,以便让在命令行提示符下与解释器进行交互操作更加容易.这些常量见表格A.表格A 常量 说明STDIN 标准的输入设备STDO ...

  9. libcurl库进行http通讯-开篇

    从今天開始介绍一些经常使用的库. 首先就来写一写关于libcurl库. libcurl主要功能就是用不同的协议连接和沟通不同的server~也就是相当封装了的sockPHP 支持libcurl(同意你 ...

  10. tomcat thread dump 分析

    前言 Java Thread Dump 是一个非常有用的应用诊断工具, 通过thread dump出来的信息, 可以定位到你需要了解的线程, 以及这个线程的调用栈. 如果配合linux的top命令, ...