.前台代码

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication10.WebForm1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script src="Scripts/jquery-1.10.2.min.js"></script>
<script type="text/javascript">
$.fn.GetPostData = function () {
var data = {};
var k = false;
$(this).find(".datacontrol").each(function (i, value) { var field = $(value).attr("name");
if (field == null) {
field = $(value).attr("id");
}
if (value.tagName == "INPUT") {
if (value.type == "checkbox") {
if ($(value).prop("checked") == true) {
if (data[field]) {
var a = +$(value).val();
if (a == "") {
a = "";
}
data[field] = data[field] + "," + a;
k = true;
} else {
var a = +$(value).val();
data[field] = ""
k = true;
}
}
}
else if (value.type == "radio") {
if ($(value).attr("checked") == true) {
data[field] = $(value).val();
k = true;
}
}
else {
if ($(value).val() != "") {
data[field] = $(value).val();
k = true;
}
}
} else if (value.tagName == "SELECT") {
if ($(value).val() != "") {
data[field] = $(value).val();
k = true;
}
}
else if (value.tagName == "DIV") {
data[field] = $(value).html();
k = true;
}
else if (value.tagName == "IMG") {
data[field] = $(value).attr("src");
k = true;
}
else if (value.tagName == "SPAN") {
data[field] = $(value).html();
k = true;
}
else if (value.tagName == "TEXTAREA") {
if ($(value).val() != "") {
data[field] = $(value).val();
k = true;
}
} });
if (!k) {
return null;
}
return data;
}
$(function () { $("#btn").on("click", function () {
//var postParam = new Object();
//alert($("#t1").val());
//postParam.t1 = $("#t1").val();
//postParam.t2 = $("#t2").val();
//postParam.t3 = $("#t3").val();
//postParam = JSON.stringify(postParam);
var postParam = $("#form1").GetPostData();
postParam = JSON.stringify(postParam);
$.post("webform1.aspx?_method=postParam&data="+postParam, function (data) { });
});
});
</script>
</head>
<body>
<form id="form1" runat="server">
<input type="button" id="btn" name="btn" value="点击我" />
<input type="text" id="t1" name="t1" value="t11" class="datacontrol"/>
<input type="text" id="t2" name="t2" value="t22" class="datacontrol"/>
<input type="text" id="t3" name="t3" value="t33" class="datacontrol"/>
</form>
</body>
</html> .后台代码 using System;
using System.Collections.Generic;
using System.Dynamic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls; namespace WebApplication10
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
switch (Request["_method"])
{
case "postParam":
var dictionary = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string,string>>(Request["data"]);
break; }
}
}
}

jquery表单数据反序列化为字典的更多相关文章

  1. jquery表单数据验证扩展方法

    /** 表单数据验证 **/ $.fn.Validform = function () { var Validatemsg = ""; var Validateflag = tru ...

  2. 将表单数据转化为json数据

    /** * 将Form表单转成符合后台要求的json格式数据 * @param frm form表单Id * * @return json格式的数据 */function getFormJson(fr ...

  3. 序列化表单数据$("form").serializeArray()

    在做一个后台管理系统类似的项目中发现不能直接取得表单中的数值,于是想到先将表单数据转化为json,然后再用js从json中获取数据,那不就简单了吗? 于是我用了jquery的serializeArra ...

  4. Js:消息弹出框、获取时间区间、时间格式、easyui datebox 自定义校验、表单数据转化json、控制两个日期不能只填一个

    (function ($) { $.messageBox = function (message) { $.messager.show({ title:'消息框提示', msg:message, sh ...

  5. 将JSON反序列化为指定的.NET类型

    前言: 关于将JSON格式数据反序列化为指定的.NET类型数据常见的场景就是,关于网络请求获取请求成功的响应数据.本篇主要讲的的是如何通过使用Newtonsoft.Json中的JsonConvert. ...

  6. 将JSON字符串反序列化为指定的.NET对象类型

    目录导航: 前言: 方法一.在项目中定义对应的对象参数模型,用于映射反序列化出来的参数(复杂JSON字符串数据推荐使用): 方法二.直接将JSON字符串格式数据反序列化转化为字典数据(简单JSON字符 ...

  7. jQuery表单验证以及将表单序列化为json对象小练习

    jquery表单验证(非实时验证),同时,将表单序列化为json对象提交表单. <!DOCTYPE html> <html lang="en"> <h ...

  8. jquery ajax异步提交表单数据的方法

    使用jquery的ajax方法可以异步提交表单,成功后后台返回json数据,回调函数处理,可以不用刷新页面,达到异步的目的: 处理表单的数据可以用serialize()方法进行序列化,而如果提交的数据 ...

  9. jQuery对的表单数据序列化和校验

    jQuery对的表单数据序列化和校验 表单序列化 如果想让表单通过ajax异步提交,那么首先我们要通过js获取到每个表单中输入的值,如果表单项比较多的话,是一件很麻烦,很痛苦的事情,那么我们可以通过j ...

随机推荐

  1. vba打开excel文件遍历sheet的名字和指定单元格的值

    今天项目上有个应用,获取指定Excel文件下的所有sheet的名称以及当前sheet中指定单元格的值,并把他们写到固定的sheet中去,看了下,文件比较多,而且每个文件sheet的个数比较多,也不一样 ...

  2. Sql 中Collate用法

    今天查询sqlite的时候需要不区分大小写,查了下文档,需要使用collate nocase.顺便学习下collate的用法. collate在sql中是用来定义排序规则的.排序规则其实就是当比较两个 ...

  3. Fineui往框架添加选项卡的方法

    在主页F.ready(function (){...}方法中添加js代码 // 添加示例标签页 window.addExampleTab = function (id, url, text, icon ...

  4. 关于urlDecode和tomcat一些源码

    1. 看下面源码,找到%号,每次加2,然后将16进制转换为int,也就是%号后两位加2得到16进制,转换为int ) < numChars) && (c=='%')) { ,i+ ...

  5. Java中的阻塞和非阻塞IO包各自的优劣思考(经典)

    Java中的阻塞和非阻塞IO包各自的优劣思考 NIO 设计背后的基石:反应器模式,用于事件多路分离和分派的体系结构模式. 反应器(Reactor):用于事件多路分离和分派的体系结构模式 通常的,对一个 ...

  6. python学习(十五) 屏幕抓取

    15.1 屏幕抓取 15.1.1 Tidy和XHTML解析 Tidy:用来修复不规范且随意的HTML文档的工具. 为什么用XHTML: 和旧版本的HTML之间最主要的区别:HTML可能只用一个开始标签 ...

  7. cocos2d-x v3.3开发环境配置

    开发环境: Win10 VS2012 链接:http://pan.baidu.com/s/1bn6S31d 密码:j2ol 配置Java SDK: 新建:JAVA_HOME =G:\Java\jdk1 ...

  8. Strom简单介绍

    1.离线计算是什么? 离线计算:批量获取数据.批量传输数据.周期性批量计算数据.数据展示 代表技术:Sqoop批量导入数据.HDFS批量存储数据.MapReduce批量计算数据.Hive批量计算数据. ...

  9. oracle——存储过程参数

    oracle 存储过程类型: 1.in:输入类型,即由应用程序将数据传入oracle存储过程中:这种参数在存储过程中是只读参数,在存储过程中无法对该类型的参数进行修改: 2.out:输出参数,是在存储 ...

  10. 嵌入式Linux启动配置文件及脚本分…

    使用Busybox制作根文件系统时,/etc目录非常重要,它包含了嵌入式Linux启动所需的配置文件及脚本.由于init进程,或者说linuxrc程序会解析inittab文件,因此就从/etc/ini ...