zoukankan      html  css  js  c++  java
  • POST 数据 Web API controller

      HTML表单或者使用GET或POST发送数据到服务器。表单method属性给出了HTTP方法定义:

    <form action="api/values"method="post">

    默认的方法是GET。如果表单使用GET,表单数据被编码在URI作为查询字符串。如果表单使用POST,表单数据放置在请求主体。

    1. 复杂类型
      
    通常情况下,如果使用POST发送数据到 ApiController时,在ApiController中接受参数为对象,比如

    public HttpResponseMessage PostSysLog(SysLog syslog)

    那么在客户端有一个表单form,客户端发生数据用ajax方式就是:

       $("#form1").submit(function () {
            var jqxhr = $.post('api/SysLog', $('#form1').serialize())
                .success(function () {
                    var loc = jqxhr.getResponseHeader('Location');
                    var a = $('<a/>', { href: loc, text: loc });
                    $('#message').html(a);
                })
                .error(function () {
                    $('#message').html("Error posting the update.");
                });
            return false;
        });
    
    

    2. 简单类型

    如果仅仅想发送一个简单类型的数据(在服务端没有对象),比如大字符串,怎么做呢?

    
    
    public string Post([FromBody]string value)
    {
      return value;
    }
    
    

    在客户端调用方法:

    $.post("api/values/", {"" : "20"}, function (data) {
      alert(data);
    });

    也可以发送一个数组

    public string Post([FromBody]string[] value)
    {
         return value[0];
    }

    在客户端调用方法:

    $.post("api/values/", {"" : ["10","20","30"]}, function (data) {
      alert(data);
    });

    在有些情况下很有用,比如批量上传数据的时候,可以一次发送,在服务端解析数据。

     

  • 相关阅读:
    Python select示例
    Python paramiko
    Python SQLAlchemy之多对多
    Python SQLAlchemy
    Python 上下文关系
    Python rabbitmq
    Python mysql
    使用Word 2013向cnblog发布博文
    jquery lazyload延迟加载技术的实现原理分析_jquery
    jquery-懒加载技术(简称lazyload)
  • 原文地址:https://www.cnblogs.com/liquanchun/p/2830790.html
Copyright © 2011-2022 走看看