zoukankan      html  css  js  c++  java
  • 关于RC版WebAPI参数绑定问题

    近日将asp.net webapi 升级为rc版,突然发现之前beta版开发的程序不能正常工作了,用httpclient调用webapi时,action的参数总是空,无法获取传入的值,查阅了官方的论坛发现下面的帖子,http://blogs.msdn.com/b/jmstall/archive/2012/04/16/how-webapi-does-parameter-binding.aspx

    rc版的webapi参数绑定器分为两种:

    1.Model Binding

    2.Formatters 

    其中Model Binding仅从url中取值,这点是与mvc的model binding有区别的,

    formatters是从request的body中取值,并且是把整个body作为一个(不可为多个)对象解析为一个参数。

    webapi是如何从这两种方式选择呢?

    1.默认情况下是根据参数的类型,如果参数为简单类型(字符串、整数、浮点、时间类型等),则使用model binding,如果是复杂类型(自定义的类,包括一个或多个字段)等,则用formatters

    2.可以给参数加上[FromBody]属性,则使用formatters

    3.可以给参数加上[ModelBinder]属性,则使用model binding,而且可以此属性允许你指定用自定义的绑定器,也可以使用[FromUri]属性来使用model binding

    4.特别注意一点,一个action上,只能有一个参数使用formatters,否则会在运行时抛出异常

  • 相关阅读:
    hw4 打卡
    lab4打卡
    hw3打卡
    lab3打卡
    hw2打卡
    lab2打卡
    hw1打卡
    Java Trie(词典树)实现
    Java HashMap实现
    DFS习题复习(2) DFS的实际应用:括号检测,graph Bipartite及随机生成迷宫
  • 原文地址:https://www.cnblogs.com/xiaoweiyu/p/2546116.html
Copyright © 2011-2022 走看看