以前总是ajax请求是这样的

data:"a=1&b=2&c=3..."

而Controller也总是这样的

Action(int a,int b,int c)

很丑!!!

现在可以这样了

<!doctype html>
<html>
<head>
<script src="~/Scripts/jquery-1.8.2.min.js"></script>
<script>
$(function () {

$('#getMsg').click(
function () {
var msg = {};
var msgs=[];
msg.Data = "";
msg.ErrorCode = 1;
msg.ErrorMsg = "不合法的数据类型";
msgs.push(msg);

$.ajax({
url: '/Home/GetMessage',
data: {
msg: JSON.stringify(msg),
msgList: JSON.stringify(msgs)
},
datatype: "json",
type: "post",
contenttype: "application/json",
success: function (result) {
alert(result.Message);
},
error: function (result) {
alert("操作失败!");
}
});
});
});
</script>
</head>
<body>
<button id="getMsg">SendMsg </button>
</body>
</html>

using Newtonsoft.Json.Linq;
using Newtonsoft.Json;

public ActionResult GetMessage( [ModelBinder(typeof(JsonBinder<CMessage>))]CMessage msg,
[ModelBinder(typeof(JsonBinder<List<CMessage>>))]List<CMessage> msgList
)
{

return View();
}

public class JsonBinder<T> : IModelBinder where T:class
{
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
//从请求中获取提交的参数数据
var json = controllerContext.HttpContext.Request.Form[bindingContext.ModelName] as string;

//如果获取不到数据直接返回空
if (json == null)
{
return null;
}
return json.ToInstance<T>();

}
}
public static class JsonHelper
{
public static String ToJson<T>(this T ojb) where T : class
{
return JsonConvert.SerializeObject(ojb, Formatting.Indented);

}
public static T ToInstance<T>(this String jsonStr) where T : class
{
var instance = JsonConvert.DeserializeObject<T>(jsonStr);

return instance;

}
}

Ajax Post 类实例的更多相关文章

  1. dagger2系列之生成类实例

    上一节的最后,我讲到一次注入生成类实例的生成步骤.先来回顾一下: 1  Module中存在创建方法,则看此创建方法有没有参数 如果有参数,这些参数也是由Component提供的,返回步骤1逐一生成参数 ...

  2. 自己动手之使用反射和泛型,动态读取XML创建类实例并赋值

    前言: 最近小匹夫参与的游戏项目到了需要读取数据的阶段了,那么觉得自己业余时间也该实践下数据相关的内容.那么从哪入手呢?因为用的是Unity3d的游戏引擎,思来想去就选择了C#读取XML文件这个小功能 ...

  3. Struts2 源码分析——Result类实例

    本章简言 上一章笔者讲到关于DefaultActionInvocation类执行action的相关知识.我们清楚的知道在执行action类实例之后会相关处理返回的结果.而这章笔者将对处理结果相关的内容 ...

  4. [No000085]C#反射Demo,通过类名(String)创建类实例,通过方法名(String)调用方法

    using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using Sy ...

  5. python之元编程(元类实例)

    本实例是元类实例,功能是记录该的子类的类名,并以树状结构展示子类的类名. RegisterClasses继承自type,提供的功能是在__init__接口,为类创建了childrens的集合,并类名保 ...

  6. 简单实用的PHP防注入类实例

    这篇文章主要介绍了简单实用的PHP防注入类实例,以两个简单的防注入类为例介绍了PHP防注入的原理与技巧,对网站安全建设来说非常具有实用价值,需要的朋友可以参考下   本文实例讲述了简单实用的PHP防注 ...

  7. 转:c++类实例在内存中的分配

    转自:http://blog.csdn.net/alexwei2009/article/details/6157926 c++是一种面向对象的编程语言,它向下保持了对c的兼容,同时也允许程序员能够自由 ...

  8. Python的类实例属性访问规则

    一般来说,在Python中,类实例属性的访问规则算是比较直观的. 但是,仍然存在一些不是很直观的地方,特别是对C++和Java程序员来说,更是如此. 在这里,我们需要明白以下几个地方: 1.Pytho ...

  9. 把自定义类实例存储到LSO

    使用flash.net.registerClassAlias( )方法保留类型信息并把类实例添加到共享对象的data属性上. LSOs 使用特殊的二进制格式,Action Message Format ...

随机推荐

  1. JS 获取上一层目录

    派生到我的代码片 <script type="text/javascript"> //返回当前工作目录 function GetCurrDir(){ var pathN ...

  2. Day One(Beta)

    站立式会议 站立式会议内容总结 331 今天:自己摸索了BaseAdapter删除元素的三种方式更新效率逐步上升 明天:学习webkit的webview的使用 442 今天:书籍评价界面,计划删除功能 ...

  3. hibernate的hql查询

    1.概念介绍 1.Query是Hibernate的查询接口,用于从数据存储源查询对象及控制执行查询的过程,Query包装了一个HQL查询语句. 2.HQL是Hibernate Query Langua ...

  4. json写入和读取代码

    #写入new文件 import json dic = {'name':'alex'} i = 8 s = 'hello' l = [11,22] f = open("new_hello&qu ...

  5. LINUX 配置IP

    1. 用命令查看一下IP配置:ifconfig, 修改网络配置文件  vi  /etc/sysconfig/network-scripts/ifcfg-eht0 2.但是,很多时候,较难记住里面文件的 ...

  6. jsrender for object

    <div id="result"></div> <script id="theTmpl" type="text/x-js ...

  7. 一起学HTML基础-利用CSS和JavaScript制作一个切换图片的网页

    由于个人原因,不详细写步骤 思路: 一.布局 二.制作图片区和按钮区的div及颜色.边框.背景属性等 三.用PS将四张图片剪切到同一个尺寸,重叠放置在图片切换区,透明度设置为0 四.点击对应按钮时,将 ...

  8. 资源: StaticResource, ThemeResource

    StaticResource ThemeResource 示例1.演示“StaticResource”相关知识点Resource/StaticResourceDemo.xaml <Page x: ...

  9. 【OpenJ_POJ C16D】Extracurricular Sports(构造,找规律)

    题目求n个互不相同的数,满足其和为其lcm.我们把lcm看成一个线段,分割成长度不同的n份.当然分法有很多,我们只需要构造一个好想好写的.先分成两个二分之一,取其中一个二分之一再分成1/3和2/3,接 ...

  10. UIScrollView 实践经验(转)

    转载自:http://tech.glowing.com/cn/practice-in-uiscrollview/ UIScrollView(包括它的子类 UITableView 和 UICollect ...