之前看公司的代码,从页面ajax传参数到接口类,接口类用一个实体接收。我一直以为c#会自动识别,赋值到同名的字段。

我曾和朋友讨论过,双方辩论。朋友认为c#没有这种功能,没有这样高级匹配的机制。而我因为在项目中使用的是直接传值,并没有做过什么拼接或转换,所以我认为c#会自动把同名的自动赋值。朋友不同意,于是我们觉得代码上见分晓。

打开vs,我们开始调试,写好一段ajax的js,Url就写接口类的路径,参数为一段json,然后接口类那边接收json。写到接口类的时候,我想要接收ajax传来的数据,忽然就蒙了。一个类怎么接收页面传来的数据,用XmlHttpRequest?WebHttpRequest?之前一直以为是理所当然的事情崩溃了,明明我之前用的时候都没有接收数据的代码,应该是直接会赋值的啊?为啥我自己写的时候就要整接收?

于是我翻开源代码,发现关键的代码被编译过了,没关系,我们还可以反编译。

找到调用的代码,我一下子就恍然大悟了。原来项目里已经封装过接收数据的代码了,有一个专门接收ajax传的数据并把它转换为实体的类。我瞬间就有点佩服公司的开发人员了,封装了接收数据的类,让接口类不需要只要处理逻辑,而不用在意怎样接收数据,接收怎样的数据,的确是大大方便了开发人员。

那么我们就开始分析,首先ajax传来的参数以json格式传到一个专门处理数据封装的地方,可以是一个.cs文件,也可以是一个一般处理程序。在内部接收ajax传来的json数据,然后转换为实体数据,方便而简单。

ajax传参到实体类对应字段的更多相关文章

  1. ajax传参data里面的键是一个变量的解决方法

    直接用这种方式来传参,比如bean中有字段 username password,则是 data[username] = "用户名"; data[password] = " ...

  2. c# 反射得到实体类的字段名称和值,DataTable转List<T>

    /// <summary> /// 反射得到实体类的字段名称和值 /// var dict = GetProperties(model); /// </summary> /// ...

  3. MyBatis系列二 之 数据库列名于程序实体类中字段名称不一致

    MyBatis系列二  之   数据库列名于程序实体类中字段名称不一致 情景:当数据库中的列名与我们程序实体类中的字段名称不一致         使用ResultMap节点配置信息  在映射文件中  ...

  4. jq中的ajax传参

        一.   jq中的Ajax传参有两种           1.通过url地址来传参    2.通过data来传递参数 1. url来传递参数 function GetQuery(id) { | ...

  5. Java8通过Function获取字段名(获取实体类的字段名称)

    看似很鸡肋其实在某些特殊场景还是比较有用的.比如你将实体类转Map或者拿到一个Map结果的时候,你是怎么获取某个map的key和value.方法一:声明 String key1="name& ...

  6. Liferay7 BPM门户开发之28: Portlet文件上传,及实体类同步更新上传

    抓住核心 . Liferay文件上传的核心就是使用UploadPortletRequest类 继承关系java.lang.Object extended byjavax.servlet.Servlet ...

  7. Ajax传参讲解

    客户端和服务器 1.请求:request 2.响应:response 服务器响应事件:onreadystatechange() send() 用于向后台传递参数: Ajax的请求方式 get:    ...

  8. jq ajax传参的两种方式

    第一种   在url ? 后通过拼接传参   第二种 通过data传参 (1)第一种方法:(通过url传参) function GetQuery(id) { if (id ==1||id==7) { ...

  9. 超全table功能Datatables使用的填坑之旅--2:post 动态传参: 解决: ajax 传参无值问题.

    官网解释与方法:1 当向服务器发出一个ajax请求,Datatables将会把服务器请求到的数据构造成一个数据对象. 2 实际上他是参考jQuery的ajax.data属性来的,他能添加额外的参数传给 ...

随机推荐

  1. cordova填坑

    cordova填坑

  2. 2.Redis常用命令

    setget 匹配Keykeys *keys na*keys na?e 判断指定的Key是否存在exists key 删除一个或者多个keydel key//删除一个del key1 key2//删除 ...

  3. 贪心算法-Huffman编码

    伪代码: 例子:

  4. CSS学习目录

    前面的话 CSS是前端工程师的基本功,但好多执迷于学习javascript的人的基本功并不扎实.可能一些人从w3school网站匆匆过了一遍,只是对CSS常用概念有一些表面上的理解,就一头扎进java ...

  5. Android线程之并发处理

    上一篇为大家介绍了关于Looper的简单知识,本篇我们介绍一下多线程的并发处理,我们知道Handler通过sendMessage()发送的消息,首先发送给了Looper,存入Looper的消息栈,之后 ...

  6. c++中关于初始化型参列表的一些问题

    /* 1.成员是按照他们在类中出现的顺序进行初始化的,而不是按照他们在初始化列表出现的顺序初始化的! 一个好的习惯是,按照成员定义的顺序进行初始化. 2.数组成员在初始化型参列表中不正确 */ #in ...

  7. java中对象多态时成员变量,普通成员函数及静态成员函数的调用情况

    /* 样例1: class Parent{ int num = 3; } class Child extends Parent{ int num = 4; } */ /* 样例2: class Par ...

  8. SharePoint Server 2013开发之旅(一):新的开发平台和典型开发场景介绍

    我终于开始写这个系列文章,实际上确实有一段时间没有动笔了.最近重新安装了一套SharePoint Server 2013的环境,计划利用工作之余的时间为大家写一点新的东西. SharePoint Se ...

  9. 解决jquery和prototype库冲突问题

    在项目中同时引入了jquery.js和prototype.js两个文件,在方法调用时启了冲突. 我们在使用 jQuery 的过程中我们会频繁使用 $ 符号,$是JQuery的别名,所有使用$的地方也都 ...

  10. emacs: 文本输入中文件目录自动补全

    emacs: 文本输入中文件目录自动补全 // */ // ]]> UP | HOME   emacs: 文本输入中文件目录自动补全 Table of Contents 1 引言 2 补全过程演 ...