WebApi 中FromUri参数自动解析成实体的要求
条件一:类属性名称必须和参数名称相同(不分大小写)
条件二:API参数必须以[FromUri]来修饰(数组也需要添加,否则参数传递不了)
条件三:属性类型为“类”的,如果使用类名(导航属性在本类的名称,可以不是类的原名).属性名或者 类参数名[属性] 的形式,例如Page.PageIndex 或者Page[]PageIndex]
条件四:属性类型为“数组,集合”时,如果带上下标,如类名[0].属性名的形式,例如OrderList[0].OrderId
条件五:属性为类时,要求这个类必须有空的构造方法
条件六:属性的set块,必须是public修饰的(不要用public 字段,否则参数传递不了)
测试链接:
http://localhost:57879/api/test/OrderBy?nMebID=87225&abc[Parts][0][ps]=111111111part&abc[Parts][1][pS]=222222222222part&abc[LastKey]=Last Key&abc[ins][]=1&abc[ins][]=2&abc[ins][]=3&abc[P][pS]=P-pS&part1[pS]=p1-pS&part2[pS]=p2-pS&zis[]=1&zis[]=2&zis[]=3
测试前端:
<script type="text/javascript" charset="utf-8">
$(function () { $.ajax({
type: "get",
url: "http://localhost:57879/api/test/OrderBy",
dataType: "text",
data: {
"nMebID":87225,
"abc": { Parts: [{ ps: "111111111part" }, { pS: "222222222222part" }], LastKey: "Last Key", ins: [1, 2, 3], P: { pS: "P-pS"} },
"part1": { pS: "p1-pS" },
"part2": { pS: "p2-pS" },
"zis":[1,2,3]
},
success: function (data) {
alert(data);
},
error: function (x, y, z) {
// alert("报错无语");
}
});
});
</script>
后台:
using System.Text;
using System.Web.Http;
using Newtonsoft.Json; namespace WebApplication1.Controllers
{
public class TestController : ApiController
{
[HttpGet]
public string OrderBy(int nMebID, [FromUri] PartsQuery ABC, [FromUri] Part part1, [FromUri] Part part2, int[] zis)
{
QueryDiscountCouponsCondition ee = new QueryDiscountCouponsCondition();
return JsonConvert.SerializeObject(ABC);
}
}
}
namespace WebApplication1
{
public class PartsQuery
{
public int[] ins { get; set; }
public Part[] Parts { get; set; }
public string LastKey { get; set; }
public int zhengshu { get; set; }
public bool bl { get; set; } public Part P { get; set; }
} public class Part
{
public int[] pIns { get; set; }
public string pS { get; set; }
public int pInt { get; set; }
}
}
WebApi 中FromUri参数自动解析成实体的要求的更多相关文章
- WebApi系列~FromUri参数自动解析成实体的要求
回到目录 关于webapi我之前写了一些文章,大家可以根据目录去浏览,今天要说的是个怪问题,也是被我忽略的一个问题,当你的Url参数需要被Api自动解析成实体的属性,实事上是要有条件的,不是所以属性都 ...
- Mybaits 源码解析 (八)----- 全网最详细,没有之一:结果集 ResultSet 自动映射成实体类对象(上篇)
上一篇文章我们已经将SQL发送到了数据库,并返回了ResultSet,接下来就是将结果集 ResultSet 自动映射成实体类对象.这样使用者就无需再手动操作结果集,并将数据填充到实体类对象中.这可大 ...
- IDEAL葵花宝典:java代码开发规范插件:GsonFormat插件将JSONObject格式的String 解析成实体
前言: GsonFormat插件主要用于使用Gson库将JSONObject格式的String 解析成实体,该插件可以加快开发进度,使用非常方便,效率高. 这个教程主要是学习IntelliJ IDEA ...
- IntelliJ IDEA 通过GsonFormat插件将JSONObject格式的String 解析成实体
GsonFormat插件主要用于使用Gson库将JSONObject格式的String 解析成实体,该插件可以加快开发进度,使用非常方便,效率高. 插件地址:https://plugins.jetbr ...
- GsonFormat插件主要用于使用Gson库将JSONObject格式的String 解析成实体,该插件可以加快开发进度,使用非常方便,效率高。
GsonFormat插件主要用于使用Gson库将JSONObject格式的String 解析成实体,该插件可以加快开发进度,使用非常方便,效率高. 插件地址:https://plugins.jetbr ...
- xml格式报文的拼装,和解析成实体类
我们的微信支付,使用的是第三方的支付,某银行的微信支持渠道.所有的接口请求.应答都是xml格式报文,这样就需要用到xml格式报文的拼装和解析,这儿简单讲一下. 拼接xml格式报文. 从页面表单提交和配 ...
- XML中的非法字符转化成实体
问题 如果XML有非法字符比如 "·",或者HTML标签<br/>.XML在解析的过程中就会出错.就无法正常解析,或者把xml反射成实体. 有些字符,像(<)这类 ...
- Java将Excel中科学计数法解析成数字
需要注意的是一般的科学表达式是1.8E12 1.8E-12 而在Excel中的科学表达式是1.8E+12 1.8E-12 我写的科学计数法的正则表达式是(-?\d+\.?\d*)[Ee]{1}[\+- ...
- 自动将String类型的XML解析成实体类
package com.mooc.freemarker2dto; public class BaseDto { } package com.mooc.freemarker2dto; public cl ...
随机推荐
- 怎样在log4j.xml配置文件中引入变量:小公司经验较多的我和阿里UC等大公司经验较多的Boss,一些技术交流和探讨
从最初学习使用log4j的时候,网上和书本上主要都是使用"log4j.properties"这种属性格式,配置日志.多年以来,一直使用这种格式,总的来说,简单.够用. 而有十 ...
- Gson的使用(JsonObject)
在Java开发互联网应用系统的过程中,数据的传递与转换是经常使用的,我在开发的过程中用的最多的是google的Gson,现就其使用的过程中的注意点做一个总结(当然首先要先去下载Gson的jar包,附件 ...
- 拉伸按钮背景图片:stretchableImageWithLeftCapWidth:
// 1. 拉伸按钮背景图片 // 1) 登录按钮 UIImage *loginImage = [UIImage imageNamed:@"LoginGreenBigBtn"]; ...
- Oracle数据库表空间 数据文件 用户 以及表创建的SQL代码
--create the tablespace CREATE SMALLFILE TABLESPACE "TABLE_CONTAINER" --创建表空间 DATAFILE 'E: ...
- 推荐:一个写的相当好的介绍C++单元测试框架Google Test (gtest) 教程
原文来自:http://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html 虽然有点晚了,还是一口气读完了全部文章.作者言简意赅和明快的风格 ...
- WSL探索及WSLAPI调用记录
以前都是在虚拟机上安装linux,居然刚知道win10有WSL(Windows Subsystem for Linux)可以直接在win10上安装linux,消耗低,效率高,很赞,趁着干兴趣把WSL探 ...
- Asp.net C# 获取本周上周本月上月本年上年第一天最后一天时间大全
DateTime dt = DateTime.Now; int weeknow = Convert.ToInt32(DateTime.Now.DayOfWeek); ) * weeknow + ; D ...
- Computer system with dual operating modes
A system switches between non-secure and secure modes by making processes, applications, and data fo ...
- wpf mvvm模式下CommandParameter传递多参
原文:wpf mvvm模式下CommandParameter传递多参 CommandParameter一般只允许设置一次,所以如果要传递多参数,就要稍微处理一下.我暂时还没找到更好的方案,下面介绍的这 ...
- mysql中常见的存储引擎和索引类型
存储引擎 1. 定义 存储引擎说白了就是如何存储数据.如何为存储的数据建立索引和如何更新.查询数据等技术的实现方法.因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类 ...