【问题标题】:Access Passed Parameters MVC Xhttp.Send()访问传递的参数 MVC Xhttp.Send()
【发布时间】:2020-05-26 13:47:22
【问题描述】:

我正在使用 c# 开发一个基于 MVC 的 WEBAPI 项目。 我有一个必须传递给 API 的 json 对象 dataToSend (JSON FORMAT)。

API 似乎工作正常,因为它返回了预期的内容。但是我想访问从xhttp.send(dataToSend) 发送给它的数据。

这是前端代码:


        var xhttp = new XMLHttpRequest();
        xhttp.onreadystatechange = function () {
            if (this.readyState == 4 && this.status == 200) {
                document.getElementById("demo").innerHTML = this.responseText;
            }
        };

        var selectedOptions = ["1","2","3"];
        var searchQuery = "Text Of Choice" ;

        var dataToSend = {
            searchQuery: searchQuery,
            attributes: selectedOptions
        }

        console.log(dataToSend);
        var postUrl = "/home/post";
        for (i = 0; i < selectedOptions.length; i++) {
            console.log(selectedOptions[i]);
        }


        xhttp.open("POST", "/home/post/", true);
        xhttp.send(dataToSend);

我无法弄清楚如何在我的POST API 调用中访问dataToSend

 [HttpPost]
        public string Post()
        {
            var dataToRecieve = ..... ??
            return "posted";
        }

【问题讨论】:

    标签: c# ajax asp.net-mvc rest


    【解决方案1】:

    我建议首先为您将收到的对象创建一个模型,例如:

     public class SearchModel
     {
         public string   SearchQuery;
         public string[] selectedOptions;
     }
    

    然后将对象作为 FromBody 参数接收:

        [HttpPost]
        public IHttpActionResult Post([FromBody] SearchModel model)
        {
            var dataToRecieve = model
            return Ok(dataToReceive);
        }
    

    [FromBody] 表示你将从请求正文中接收参数

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-03
      • 1970-01-01
      • 1970-01-01
      • 2011-05-21
      • 2017-12-25
      • 2016-06-16
      • 1970-01-01
      相关资源
      最近更新 更多