Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Asp.net Web API模型在POST请求时绑定为空_Javascript_C#_.net_Vue.js_Asp.net Core - Fatal编程技术网

Javascript Asp.net Web API模型在POST请求时绑定为空

Javascript Asp.net Web API模型在POST请求时绑定为空,javascript,c#,.net,vue.js,asp.net-core,Javascript,C#,.net,Vue.js,Asp.net Core,当我从我的前端(vue.js)向asp.net web API(使用.net CORE)发出POST请求时,当在控制器的方法中使用复杂类型时,当我直接发送json对象请求时,模型绑定显示null,但当我在前端将json转换为json字符串并使用一个变量发送时,请求有效 我来自vue.js的请求 let data = JSON.stringify({"name":"myname","phone":"555555"});

当我从我的前端(vue.js)向asp.net web API(使用.net CORE)发出POST请求时,当在控制器的方法中使用复杂类型时,当我直接发送json对象请求时,模型绑定显示null,但当我在前端将json转换为json字符串并使用一个变量发送时,请求有效

我来自vue.js的请求

let data = JSON.stringify({"name":"myname","phone":"555555"});

var config = {
  method: 'post',
  url: 'http://localhost:4003/api/Controller/Request',
  headers: { 
    'Content-Type': 'application/json'
  },
  data : data
};
如上所示,我需要将其转换为字符串,然后在一个变量中发送json字符串。(本工程)

但是,如果我将请求作为一个直接的原始json主体发送,那么复杂模型将显示所有
null

axios.post(http://localhost:4003/api/Controller/Request, {
        "name": "myname",
        "phone": "5555555"
       }, {
        headers: { 
    'Content-Type': 'application/json'
                 }
      });
我的控制器的方法如下

public async Task<IActionResult> Post([FromBody] NameModel input)
现在我的问题是,为什么模型绑定不直接在原始请求中映射属性名?由于要通读文档,所以在使用复杂类型时,这应该会自动发生


另外,当我只从前端发送一个变量
数据时,映射是如何发生的
startup.cs
文件中的
Iconfigure

您可能想使用
{name:“myname”,phone:“5555555”}
Hi,是的,我也试过。在
axios.post中,URL周围没有引号(http://localhost:4003/api/Controller/Request
@PHPNoob在第二个示例中,您需要对数据进行字符串化。如果传递的数据的格式与预期的编码不匹配,那么它将不会绑定。这正是它的设计方式。
public class NameModel
    {
        public string name { get;set; }
        public string phone { get; set; }
   }