精华内容
下载资源
问答
  • WebAPI接收js传过来的对象数组数据

    千次阅读 2020-06-17 21:12:38
    WebAPI 接收js传过来的对象数组数据 百度 Google了一整天 终于 在晚上聊天的时候弄出来了 所以得出结论 写代码一定要分心 结果才能出来 说一下我的需求 需要将如下图的对象数组传递到webapi那边接收 然后进行操作 ...

    WebAPI 接收js传过来的对象数组数据

    百度 Google了一整天 终于 在晚上聊天的时候弄出来了 所以得出结论

    写代码一定要分心 结果才能出来

    说一下我的需求
    需要将如下图的对象数组传递到webapi那边接收 然后进行操作
    在这里插入图片描述
    思路:

    • post是肯定的
    • 数组直接传 但是始终接收不到 可能是技术不够
    • 那就转为json格式传 接收格式传在后台接收到的是空数据 长度为0
    • json应该没问题 应该是接收有问题 挨个去试 string[] string object List… 还是没出来 要么null要么0
    • 回过头来看js 突然看到借鉴文档的最后一个 emmm 指定请求的头的Content-Type值
    • 好叭 传的是json 但是服务器不知道啊

    最后上代码:

    $.post({
         url: "https://localhost:44319/api/Home/AddSongList",
         // 转json数据
         data: JSON.stringify(SongList),
         // 就是这里了 contentType属性告诉服务器,我们正在以JSON格式发送数据。
         // 如果检查Ajax请求的头,可以看到Content-Type值设置为application/json.
         contentType: "application/json",
         // dataType: "json",
         // 防止深度序列化
         traditional: true,
         success: function (data) {
             console.log(data)
         }
     })
    

    注意:

    • [FromBody]
    • object
    [HttpPost]
    public string AddSongList([FromBody]object json)
    {
        Console.WriteLine(json);
        return "添加成功";
    }
    

    顺便提一句
    我js提交的数据是由网络上ajax获取到的数据重新拼成的 直接使用JSON.stringify 可能后台代码无法获取数据 是因为ajax是异步的

    解决办法:
    Ajax请求从异步改为同步
    设置 setTimeout 延迟执行或者把提交到后台的ajax写成回调函数
    如下图
    addInfo回调方法

    由于进行了ajax的嵌套调用 最终还是用到了 async/await …
    最后呢 就是数据成功出来了 因为需要遍历调用ajax 一次完整的事件大概调了60来次 所以时间消耗…
    没办法 有别的办法了再优化

    在这里插入图片描述
    可能还有别的比较好的方法 这里只是自己琢磨出来的 由好方法可以扣我

    借鉴文档:

    WebApi如何接收前台传递过来的数组:
    https://www.cnblogs.com/guo-xu/p/12147402.html

    js 数组、对象转json 以及json转 数组、对象:
    https://www.cnblogs.com/Im-Victor/p/9431718.html

    WebApi FromBody参数:
    https://blog.csdn.net/bafnypeu/article/details/78262684

    如何将JSON POST数据作为对象传递给WebAPI方法?:
    其中 慕桂英4014372 的回答
    http://www.imooc.com/wenda/detail/571372

    展开全文
  • 接收前端Post来的Json对象,一直转换为空,就是Json对象无法成功转换成当前对象 检查我们的模型类数据类型,...如果前端给我们的float类型传了一个空字符串,将转换报错,所以导致我们的接口接收对象一直为Null ...

    接收前端Post来的Json对象,一直转换为空,就是Json对象无法成功转换成当前对象

    检查我们的模型类数据类型,将其设置为可null,或者全部设置为string,即可。

    如果前端给我们的float类型传了一个空字符串,将转换报错,所以导致我们的接口接收对象一直为Null

    展开全文
  • webapi接收集合数据

    千次阅读 2018-04-26 14:51:32
    最近在做一个项目,前端(angularjs)需要传递批量数据到webapi。开始想已Get方式提交,结果是单个对象(没问题,但是多个对象集合一起传递时,找不到api方法。 (单对象序列化后的JSON:"[{"REMARK":&...

           最近在做一个项目,前端(angularjs)需要传递批量数据到webapi。开始想已Get方式提交,结果是单个对象(没问题,但是多个对象集合一起传递时,找不到api方法。  (单对象序列化后的JSON:"[{"REMARK":"备注","TYPE":"测试"}]",多对象序列化后的JSON:"[{"REMARK":"备注","TYPE":"测试"},{"REMARK":"备注1","TYPE":"测试1"}]",后台有此对象对应的实体)

            没办法,只好改用post方式提交。这次可以找到后台方法,但是又出现了新的问题,后台一直接收到的都是null。网上查来查去最后发现,后台接收数据类型定义成动态类型(dynamic)可以接收到数据,到此终于有了进展,还是挺开心的。

          数据是接收到了,可是接收到的是dynamic类型的,这个类型的数据该怎么使用呢,继续问度娘吧。结果发现网上说的都是直接当做对象使用,或者可以直接强转成对应的实体类集合。这个挺好,试试吧。结果悲剧了,各种错误,完全行不通。没办法只能自己来,仔细观察接收到的dynamic数据,发现反序列JSON失败的原因,是因为接收到的数据不是标准JSON格式,像("data": "{\"Test\":\"[{\\\"REMARK":\\\"备注\\\",\\\"TYPE\\\":\\\"测试\\\"},{\\\"REMARK\\\":\\\"备注1\\\",\\\"TYPE\\\":\\\"测试1\\\"}]\"}")这样,所以反序列化的时候失败。

           所以想要反序列化成功,需要把数据转成成标准JSON格式。我是这样处理的,先用Convert.ToString()把dynamic类型转化成string,然后截取集合部分即:{\\\"REMARK":\\\"备注\\\",\\\"TYPE\\\":\\\"测试\\\"},{\\\"REMARK\\\":\\\"备注1\\\",\\\"TYPE\\\":\\\"测试1\\\"}],最后再用replace方法把\\\替换成"",得到的数据就可以反序列化成集合对象了。

          第一次写着玩,或许问题很简单,留着做个纪念吧。描述的不好,敬请谅解。


    展开全文
  • WebAPi接收xml格式数据。解决方案

    千次阅读 2019-08-14 15:47:47
    WebAPi接收xml格式数据,会出现“从客户端(messageText="<?xml version="1.0" ...")中检测到有潜在危险的 Request.Form 值。” ,在Action上面加一个标识 [ValidateInput(false)]即可 [ValidateInput(false)]...

    WebAPi接收xml格式数据,会出现“从客户端(messageText="<?xml version="1.0" ...")中检测到有潜在危险的 Request.Form 值。”

    ,在Action上面加一个标识  [ValidateInput(false)]即可

            [ValidateInput(false)]
            [AllowAnonymous]
            [HttpPost]
            public string ReceiptQuery(string clientid, string key, string messageType, string messageText)
            {
                    if (messageText != "" || messageText != null)
                    {
                        System.Xml.XmlDocument doc = new System.Xml.XmlDocument();//新建对象
                        doc.Normalize();
                        doc.LoadXml(messageText);//符合xml格式的字符串
                    }
                    return "success";
    
            }

     

    展开全文
  • WebApi接收文件上传

    千次阅读 2018-08-15 10:19:04
    //接收附件 string str = ""; HttpRequest request = HttpContext.Current.Request; HttpFileCollection fileCollection = request.Files; for (int i = 0; i ; i++) { FileSrc fs = FileHelper.UpdateFile...
  • .NET Core WebAPI post参数传递时后端的接收方式 自从前台用了Vue 的 axios 之后, 前后台交互默认变成了request pyload模式, 传过来的数据默认变成了. application/json 传递数据的格式见下图. 既然是进入了新的时代...
  • 先运行 web端 然后执行winform端 可以下断查看传输的数据,发送对象,接收对象
  • webapi参数对象为空的的处理

    千次阅读 2018-12-12 14:33:20
    最近做一个小即时通讯程序,考虑到服务资源和实际使用情况,使用的心跳包实现,结果测试时,发现发送消息到webapi后,消息对象始终为空,仔细检查了各个环节,所有问题都排查了一遍,还是没有接收到提交的消息数据。...
  • WebApi接收post方式传入的json数据

    千次阅读 2019-03-21 13:56:00
    [RoutePrefix("Api")] public class UploadController:BaseApiController { [HttpPost] [Route("Upload")] public IHttpActionResult Upload() { try{ //接收post传入的数...
  • .net webapi接收form-data类型

    千次阅读 2019-02-11 15:02:00
    public OperationResultDto APILogin() { LoginModel model = new LoginModel(); HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];//获取传统context HttpRequestBase re...
  • //如果要解析里面的某个实体对象:((JObject)jo["data"]).toString();//data是对应的字段名称 return nRet ; } /// /// 解析JSON字符串生成对象实体 /// /// 对象类型 /// ...
  • 用了C# webapi 被动接收来自不动产和大数据那边的推送数据,给了数据格式。做完之后与那边技术对接一头包暂且不提。 期间发现接收的请求都获取不到参数,在排除自身问题的时候,尝试了多种方法。 最终问题解决...
  • 如果前端不使用 application/json作为请求content-type的话,webapi接收不到from表单传过来的值,查了很多资料,贴代码 HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext&...
  • 接口文档: !... !... !...接收代码: ...我怀疑是 Input类定义有问题,但我又不知道怎么定义才能接收到"Clist":["aaaaa","bbbbb","bbbbb"] 这个参数。 如果我不要这个参数了,是可以正常接收到数据的。
  • public class testController:ApiController { public object Post([FromBody] testparam param) { return param; } } ---------------------------------------------------------- [Serializable] ...
  • C# MVC ajax调用api接口,api接口以List的形式接收参数,以实现多条记录的操作,以VS2013打开,ASP.NET MVC 4,下载解压rar-demo直接打开运行即可。压缩文件里也包含了“IHttpActionResult不识别解决办法”的文档以...
  • webapi 控制器接收POST参数时必须以对象的方式接收 转载于:https://www.cnblogs.com/xiaoshi518/p/4763168.html
  • 前端传一个json对象,后端用字典接收 byte[] data = new byte[HttpContext.Current.Request.InputStream.Length]; HttpContext.Current.Request.InputStream.Read(data, 0, data.Length); string txt = ...
  • 首先说PC前端,如果用dynamic 作为动态接收参数的话,前端的JSON数据需要用JSON.Stirngify进行序列化才能正常获取到参数。这个和前端确认后没有问题。 问题在于写提供给移动端的接口,同样是POST请求用dynamic动态...
  • webapi之dynamic传值

    2019-08-30 14:52:43
    webapi普通传值get类型 第一种 weiapi public List searchInstweek(string type, int year, int week) 前台ajax传值为 $.ajax({ url: ‘…/api/ScheduleApi/searchInstweek’, type: “Get”, dataType: “json”, ...
  • ajax: ``` var json = { ... UserName: "chog test", ... url: 'https://localhost:5001/api/User/AddUserInfoM', ... // url: '...上图为什么接收到的数据,外面是两个括号呢?
  • WebApi 接口传参 实体传参

    千次阅读 2019-06-18 00:13:27
    方法名以Get开头,WebApi会自动默认这个请求就是get请求,而如果你以其他名称开头而又不标注方法的请求方式,那么这个时候服务器虽然找到了这个方法,但是由于请求方式不确定,所以直接返回给你405——方法不被允许...
  • WebAPI get请求传递一个实体对象

    千次阅读 2019-03-01 15:51:06
    Restful风格其实就是根据请求的类型(get、post、put、delete)来匹配对应的方法.../api/Student/QueryStudent", { Id: 1000, Name: "Tom", Gender: "male", Score: "100" }, ...
  • 最近在研究WebApi,在实际的工作中遇到了一个问题:在将参数对象MSG2的实例通过Post至服务器端的时候, public static string SetMessageOperationResult(MSG2 model) { string result = string.Empty; if ...
  • Axios与Asp.Net Core WebAPI参数交互

    千次阅读 2020-09-18 13:28:11
    以下内容针对Axios和.Net Core WebAPI 如果是.Net WebAPI可参考这份文档 目录设定需知RestFul数据查询-Get简单参数列表实体类文件数据提交-Post、Delete简单类型参数列表实体类文件接收后台返回的文件参考文档 设定...
  • 1 /// <summary> 2 /// 调用api返回json 3 /// </summary> 4 /// <param name="url">api地址</param> 5 /// <param name="jsonstr">接收...
  • WebApi传递JSON参数 接收不到参数

    千次阅读 2015-10-11 17:15:31
    开发过程中经常进行JSON的传递,在WebApi中传递JSON字串时,会发现服务器端接收到不参数值,看下面代码 服务端: public void Post([FromBody]string value) { LoggerHelper.Info("Post:{0}", value); } ...
  • C# WebApi Get请求方式传递实体参数

    千次阅读 2019-04-10 19:00:50
    对于WebApi,今天又有了一些新的了解。 话说,Get请求方式,参数会附在Url后面,称为QueryString,传递给服务器;而POST方式,则将参数放在消息体内。采用QueryString的话,简单,方便,但只适合参数比较少的情况;...
  • 直接切入问题:UI及前端传递的时间参数为:2000-06-26T16:00:00Z 在Controller中如果请求的参数类型为时间类型的话,DateTime.Kind会是UTC,中国地区的会减少8个小时,所以需要调整一下WebApiConfig,将其设置为Local...
  • 调用webapi接口的实现

    千次阅读 2019-11-06 19:35:44
    远程调用webapi接口技术文档 一、webapi接口 Webapi接口是一种使用json作为存放服务端数据的载体,将服务端数据生成为json,以json的形式存放,供外界调用,获取数据。外界用户需要获取数据时,向webapi接口发起...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 136,371
精华内容 54,548
关键字:

webapi接收对象