首页
学习
活动
专区
圈层
工具
发布

ASP.NET (Core)WebApi参数传递实操演练

Asp.NET Web API中Controller是如何解析从客户端传递过来的数据,然后赋值给Controller的参数的,也就是参数绑定或者模型绑定。 常见的绑定方式有如下四种。...3、ASP.NET WebAPI中FromUri和FromBody两类特性区别 1)、【FromUri】特性 应用【FromUri】特性,Web API Action中参数将从URL中解析数据。...2)、【FromBody】特性 应用【Frombody】特性,Web API Action中参数将从请求体(Request Body),并且通过媒体类型格式化器获取和绑定数据。...注意:对多个参数使用FromBody不起作用!!!...在Web API框架下有4中内置的媒体格式化器,分别是: 1:JsonMediaTypeFormatter,对应的content-type是:application/json, text

4.7K20

Asp.Net Web API 2第十三课——ASP.NET Web API中的JSON和XML序列化

前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html 本文描述ASP.NET Web...在ASP.NET Web API中,媒体类型格式化器(Media-type Formatter)是一种能够做以下工作的对象: 从HTTP消息体读取CLR(公共语言运行时)对象 将CLR对象写入HTTP消息体...Web API提供了用于JSON和XML的媒体类型格式化器。...要改变类名在XML中的呈现,请在DataContract注解属性中设置Name参数。 要改变成员名在XML中的呈现,请设置DataMember注解属性中的Nmae参数。...要改变XML命名空间,请设置DataContract类中的Namespace参数。 Read-Only Properties——只读属性 只读属性是不被序列化的。

3K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Asp.Net Web API 2第十六课——Parameter Binding in ASP.NET Web API(参数绑定)

    当Web API在一个控制器中调用一个方法的时候,它必须为参数设定值,这个过程就叫做绑定。这篇文章描述Web API如何绑定参数,以及如何自定义绑定过程。   ...默认情况,Web API使用如下规则来绑定参数:   1、如果参数一个"简单"类型,那么Web API试图从URI中获取值。...API试图从请求的URI中获取参数值,这个“item”参数是一个复杂类型,因此Web API试图使用一个媒体格式化器从请求消息体中来读取参数值。...Using [FromUri]  为了更好的让Web API从URI中读取复杂类型,添加【FormUri】属性到参数上。...意味着它将可以从URI中绑定GeoPoint参数。在参数上你不需要添加【FromUri】属性。 客户端可以调用这个方法,例如如下的URI: http://localhost/api/values/?

    1.7K30

    使用 ServiceStack 构建跨平台 Web 服务

    《WCF和ASP.NET Web API在应用上的选择》 。...在讨论跨平台的Web服务上,ASP.NET Web API是一个重要选项,在本文中,我将展示如何利用 ServiceStack (开放源代码.NET 和Mono REST 服务框架) 来完成这一任务,不用离开...Web服务通常有远程过程调用(RPC)和RESTful (HTTP)两类,现在占据主导地位的Web服务是RESTful (HTTP),具体内容可以参看文章《REST在企业中获得成功了么?》...2年前REST就已经成为Web API部署方式的主流了,而且一直保持这种发展势头,现在基本上都是REST服务,SOAP在企业内网还存在。...当然,您始终可以创建平行的 DoSomething_v2 方法,要带两个输入的参数,但久而久之会搞乱您的 Web 服务接口和消费者,服务变得越来越丑,用WCF实现的Web服务就是属于这种情况,下面我们介绍

    2.6K50

    框架设计原则和规范(四)

    数组 1) 要在公共API中优先使用集合,避免使用数组。 2) 不要使用只读(readonly)的数组字段。...集合 要求你所需要的最弱的类型,并返回你能提供的最强类型 1) 不要在公共API中使用弱类型集合 2) 不要在公共API中使用ArrayList或List 设计用于内部实现而非API接口 //坏设计...考虑在覆盖Object.Equals方法的同时实现IEquatable接口 D.不要从Equals方法中抛出异常 E....序列化 1) 要在设计新类型时考虑到序列化 2) 选择要支持的序列化技术 A.考虑让类型支持数据协定序列化——如果需要在Web服务中使用该类型,或者需要在Web服务中对该服务进行持久化 参见: 对数据协定序列化的支持...3) 对数据协定序列化的支持 参见: 考虑让类型支持数据协定序列化——如果需要在Web服务中使用该类型,或者需要在Web服务中对该服务进行持久化 [DataContract] class Person

    1.8K40

    动态We API(ABP官方文档翻译)

    你应该至少定义一级命名空间,但是你可以定义更深的命名空间如“myCompany/myApplication/myNamespace1/myNamespace2/myServiceName”。...第一个参数是包含继承指定接口类的程序集。第二个参数是服务的命名前缀。也就是说在程序集中我们有ITaskAppService和IPersonAppService接口。...所以,你可以在javascript中像一个function一样调用动态web api controller的action。...在服务接口中使用,而不是在服务类中。 包装结果 ABP使用AjaxResponse对象包装动态web API actions的返回值。参见ajax documentation了解包装的更多信息。...作为服务参数。可以使用多个参数,但是只有一个参数允许为复杂类型(因为ASP.NET Web API 的限制)。

    3.2K30

    WCF系列教程之客户端异步调用服务

    但是那些操作全都是同步的,所以我们需要很长的时间等待服务器的反馈,如何一台服务器的速度很慢,所以客户端得到结果就需要很长的时间,试想一下,如果客户端是个web项目,那么客户体验可想而知,所以为了不影响后续代码执行和用户的体验...注意这里的异步是完全针对客户端而言的,与WCF服务契约的方法是否异步无关,也就是在不改变操作契约的情况下,我们可以用同步或者异步的方式调用WCF服务。 二、操作示例 ?...{ get; set; } [DataMember] public string Name { get; set; } [DataMember]...2、新建名为Client的客户端控制台程序,通过添加引用的方式,异步调用WCF服务 添加添加对服务终结点地址http://localhost:6666/UserInfo/的引用,设置服务命名空间为UserInfoServiceNS...ok,生成成功 (5)、将生成的文件拷贝到项目中,引入System.Runtime.Serialization命名空间和System.ServiceModel命名空间 (6)、剩下的步骤和上面的一样

    1.4K60

    使用WCF进行跨平台开发之一(WCF的实现、控制台托管与.net平台的调用)1.创建项目结构2.契约的设计3.实现服务4.控制台托管服务5.在.net平台中调用WCF

    在本次的跨平台集成通信开发示例中,使用到的各种技术,咱且走且看,一边开发一边讲解。...2.契约的设计      本实例我还是想让它确实可以应用在实际项目中,所以我在设计的时候,将使用复杂类型(complex type),因为这并不同于普通类型,尤其在java和php在使用复杂类型参数是,...命名空间,并且,在类上添加DataContractAttribute并在每个类属性上添加DataMemberAttribute: Employee.cs using System.Runtime.Serialization...4.控制台托管服务      在ConsoleHost中添加对以上两个项目的引用,这时,生成整个解决方案,然后在ConsoleHost中添加应用程序配置文件App.config。...net平台中调用WCF 在Client中,添加服务引用,命名空间设置为ServiceReference ?

    2.3K90

    WCF版的PetShop之三:实现分布式的Membership和上下文传递

    MembershipService定义在Infrastructures.Service中,定义如下: 1: using System.Web.Security; 2: using Artech.PetShop.Infrastructures.Service.Interface...比如在PetShop中,服务端进行审核(Audit)的时候,须要获取当前登录的用户名。而登录用户名仅仅对于Web服务器可得,所以在每次服务调用的过程中,需要从客户端向服务端传递。...ApplicationContext在WCF服务调用中的传递 下面我们来介绍一下如何实现上下文信息在WCF服务调用过程中的“隐式”传递。...在PetShop中,我们通过WCF的扩展实现此项功能。...上下文传递的实现原理很简单:在客户端,将序列化后的当前上下文信息置于出栈(Outgoing)消息的SOAP报头中,并为报头指定一个名称和命名空间;在服务端,在服务操作执行之前,通过报头名称和命名空间将上下文

    91060

    谈谈WCF中的Data Contract(2):WCF Data Contract对Generic的支持

    在.NET中,基于Primary Type,比如Int32,String等等,他们具有一个简单的默认的序列化方式和结构,可以说他们不需要Data Contract。...所以在定义Service Contract的时候,对于那些包含Generic Type作为参数或者返回值得Operation,我们必须指定一个具体的Data Type。...所以WCF需要为此提供这样的机制:基于不同的泛型类型参数生成不同Data Contract Name,这样才能解决命名冲突。...> DetailList         { get; set; } } 其中{0}和{1}分别代表第一个泛型类型参数和第二个泛型类型参数的名称,一次类推,你可以根据参数类型的个数设置{2}{3}… 这样我们生成的两个...这无疑在.NET中是合法的,但是对于DataContract有有可能出现命名冲突。 这也就是为什么WCF默认机制下会为Data Contract Name添加一个额外hash value的原因。

    1K70

    WCF技术剖析之二十六:如何导出WCF服务的元数据(Metadata)

    元数据的导出就是实现从ServiceEndpoint对象向MetadataSet对象转换的过程,在WCF元数据框架体系中,元数据的导出工作由MetadataExporter实现。...一、MetadataExporter MetadataExporter是一个定义在System.ServiceModel.Description命名空间下抽象类型,下面的代码片断给出了MetadataExporter...Errors是一个MetadataConversionError对象的集合,包含一些在进行元数据导出过程中出现的错误或者警告消息,我们可以利用它来进行一些相应的异常处理;字典类型的State可以作为一个容器盛放一些在进行元数据导出过程中动态使用到的对象...属性Namespace表示相应WS-Policy版本的命名空间。...除了重写定义在MetadataExporter三个抽象方法之外,还定义了一个ExportEndpoints方法帮助我们将一个包含多个终结点的服务作为一个整体导出,因为一个WSDL本身就是对一个完整的Web

    1K60
    领券