无法从Web API中的删除方法获取参数

时间:2019-11-25 11:26:33

标签: c# asp.net-web-api

我有一个Web API服务器,并且想要实现删除功能:

这是函数:

    public void Delete([FromBody]string identifier)
    {
        ExpressLogger.LogDebug("Enter");
        try
        {


            if (Utils.IsRmhUsed())
            {

                CustomerRmhDbRepository repo = new CustomerRmhDbRepository();
                repo.DelCustomer(identifier);
            }
            else
            {
                //If implement function for RMS
            }
        }
        catch (Exception ex)
        {
            ExpressLogger.LogError(ex, ex.Message);
            HttpResponseMessage message = new 
            HttpResponseMessage(HttpStatusCode.InternalServerError) { Content = new S 
            tringContent(ex.Message) };
            throw new HttpResponseException(message);
        }
    }

我用以下字符串调用邮递员的方法 http://10.0.0.129:5005/api/customer?identifier=000007

该调用到达delete方法,但变量identifer为NULL 我已经尝试过这样做:http://10.0.0.129:5005/api/customer?000007

我也尝试使用如下属性:

[Route("{identifier}")]

当我这样做时,它甚至都不会进入“删除”方法。

有什么问题?为什么我不能从变量标识符中获取值?

1 个答案:

答案 0 :(得分:3)

删除componentDidMount()属性以进行匹配

  refresh() {
    this.setState({width: this.state.width+1});
    clearInterval(this.refreshID)
  }

HTTP DELETE请求没有BODY,并且模型绑定器将绑定查询字符串中的参数。

如果使用路由模板

[FromBody]

URL必须看起来像

 http://10.0.0.129:5005/api/customer?identifier=000007

以匹配路由模板