c# - 如何使用 asp.net core/react 发布数据

标签 c# asp.net reactjs asp.net-core

我将 Visual Studio 2017 中的模板用于 asp.net core 2.0/react.js,但无法在正文中发布数据。
id来自 url 的正确填充,但来自正文的字符串是 null .
如果重要的话,我正在使用 IIS Express。

到目前为止我的代码:

服务器部分:

[Produces("application/json")]
[Route("api/Parts")]
public class PartsController : Controller
{



    // POST: api/Parts
    [HttpPost("{id}")]
    public void Post(int id, [FromBody]string value)
    {
        // breakpoint is hit.
        // id is set.
        // if I change "string value" to "dynamic value" I get an JObject.
    }
}

客户端部分:
private sendUpdates() {

    var payload = { "value": "2"}


    fetch('api/Parts/5',
        {
            method: 'POST',
            headers: {
                 'Accept': 'application/json',
                 'Content-Type': 'application/json'
            },
            body: JSON.stringify(payload)
        });

}

该请求在浏览器调试中看起来不错:

browser debug info

最佳答案

核心 API Controller

[Route("api/[controller]")]
    public class TestingController : Controller
    {
        [HttpPost("test")]
        public IActionResult Test(string pl)
        {
            if (pl == null)
            {
                return Ok();
            }
            PL plobj = JsonConvert.DeserializeObject<PL>(pl);
            return Ok($"Test Test a=={plobj.a} b=={plobj.b}");
        }
    }

要序列化的 C# 类
 public class PL
    {
      public string a { get; set; }
      public  string b { get; set; }
    }

ReactJs 部分
 constructor(props) {
        super(props);
        this.state = { text: "", loading: true};

        var PL = {
            a: 1,
            b: 2
        };
        var data = new FormData();
        data.append("PoLos", JSON.stringify(PL));

        fetch('api/Testing/test',
            {
                method: "POST",
                body: data
            }).
            then(response => response.text())
            .then(data => {
                this.setState({ text: data, loading: false });
            });

    }

我必须注意:React 部分中附加数据的名称必须与 Core Controller 中变量的名称相同(忽略大小写)

关于c# - 如何使用 asp.net core/react 发布数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48260402/

相关文章:

c# - 如何在 C# 异步任务中异步等待特定条件

asp.net - 传递查询字符串时绕过表单例份验证

javascript - react : Re-render parent component based on Child component

c# - “找不到路径 '/favicon.ico' 的 Controller ...”错误

c# - 在 Web 应用程序中使用 C# 显示图像

c# - c#从串口读取数据

javascript - 单击按钮时发出警报

javascript - 仅在 chrome 中的 asp 复选框上不会触发 onchange 事件

javascript - 无法读取未定义的属性 'getState' - Redux

reactjs - angerlySetInnerHTML 的安全替代方案