WebApi无法读取传入的POST字符串参数

WebApi无法读取传入的POST字符串参数,也就是调用这个WebApi的代码中不论给code0传入什么字符串,WebApi读到的code0都是空值。希望各位专家能够给与指点迷津!
也就是执行完string code = code0;后,code无法获取code0的值,也就是code0根本就没有传进来。

我的WebApi代码如下:

using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;

namespace expressApi.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class SurfaceController : ControllerBase
    {
        public List<TechnicalRequirement> TechnicalRequirements = new List<TechnicalRequirement>();       
        [HttpPost("PostSurface")]
        public IActionResult Surface([FromForm] string code0)
        {
            string code = code0;
           if (TechnicalRequirements == null)
            {
                        return NotFound();
            }
            return Ok(TechnicalRequirements);
     }
}

我用于测试调用这个WebApi的代码如下(初步认为不会是下面的代码的问题,因为别人用JAVA写的程序一样无法传入参数):


```c#
string strUri = requestUri;
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strUri);
            request.Method = "POST";
            //request.ContentType = "text/plain";
            request.ContentType = "application/x-www-form-urlencoded";//form值的代码,只要修改req.ContentType = "application/x-www-form-urlencoded//application/json
            string paraUriCoded = json;
            byte[] payload;
            payload = System.Text.Encoding.UTF8.GetBytes(paraUriCoded);
            request.ContentLength = payload.Length;
            Stream writer;
            try
            {
                writer = request.GetRequestStream();
            }
            catch (Exception ex)
            {
                return ex.ToString();                
            }
            writer.Write(payload, 0, payload.Length);
            writer.Close();
            HttpWebResponse response;
            try
            {
                response = (HttpWebResponse)request.GetResponse();
            }
            catch (WebException ex)
            {
                response = ex.Response as HttpWebResponse;
            }
            Stream s = response.GetResponseStream();
            StreamReader sRead = new StreamReader(s);
            string postContent = sRead.ReadToEnd().ToString();
            sRead.Close();
            return postContent;

```

[FromForm] 这个去掉,然后试试,不行贴一下前端的代码

调用的代码呢?题主按照原贴中的回复改了调用代码了吗?题主肯定是没改调用代码加code0键名称吧

 
        private void button1_Click(object sender, EventArgs e)
        {
            var sw = new Stopwatch();
            sw.Start();
            if (comboBox1.SelectedIndex == 1)
            {//加上键名称code0,并且要使用System.Web.HttpUtility.UrlEncode编码内容,要不内容负责会导致键值对错误
                txtRes.Text = Http.Post(comboBox1.Items[1].ToString(),"code0="+ System.Web.HttpUtility.UrlEncode(txtReq.Text.Trim(),System.Text.Encoding.UTF8));
            }
            else if (comboBox1.SelectedIndex == 0)
            {//加上键名称code0,并且要使用System.Web.HttpUtility.UrlEncode编码内容,要不内容负责会导致键值对错误
                txtRes.Text = Http.Post(comboBox1.Items[0].ToString(), "code0=" + System.Web.HttpUtility.UrlEncode(txtReq.Text.Trim(), System.Text.Encoding.UTF8));
            }
            else
            {
                txtRes.Text = "URI地址异常";
            }
            sw.Stop();
            textBox1.Text = sw.ElapsedMilliseconds.ToString();
        }