简体   繁体   English

无法访问删除我的api rest的方法

[英]Can't access to my method delete of my api rest

I'm not able to access to my delete method of my api rest. 我无法访问我的api rest的delete方法。

If i write the method like this it work: 如果我编写这样的方法,它将起作用:

[Route("api/Document/{documentId:int}")]
    [HttpDelete]
    public IHttpActionResult Delete([FromUri]int documentId,[FromBody] int [] documentsId)
    {
        try
        {
            documentCtrl = documentCtrl ?? new DocumentCtrl();
            return Ok(documentCtrl.Delete(documentsId));
        }
        catch (DocumentNotFoundException)
        {
            return NotFound();
        }
        catch (Exception)
        {
            return InternalServerError();
        }
    }

It works, but if i put: 它有效,但是如果我放:

[Route("api/Document/MassiveDelete")]
    [HttpDelete]
    public IHttpActionResult MassiveDelete([FromBody] int[] ids)
    {
        try
        {
            documentCtrl = documentCtrl ?? new DocumentCtrl();
            return Ok(documentCtrl.MassiveDelete(ids));
        }
        catch (DocumentNotFoundException)
        {
            return NotFound();
        }
        catch (Exception)
        {
            return InternalServerError();
        }
    }

I don't have acces, any ideas what could it be? 我没有访问权限,有什么想法吗?

This is my request code: 这是我的请求代码:

DeleteDocument(id: number): Observable<boolean> {
    return this._httpService.delete(AppModule.service + 'Document/' + id, AppModule.options)
        .map((response: Response) => <boolean>response.json())
        .catch(this.handleError);
}//This work if i want to delete one

DeleteDocuments2(ids:Array<number>):Observable<boolean>{
    AppModule.options.body=ids;
    return this._httpService.delete(AppModule.service + 'Document/MassiveDelete', AppModule.options)
        .map((response: Response) => <boolean>response.json())
        .catch(this.handleError);
}

You cannot send two parameters in your Api, you need to createa custom class like follow and send as follows, 您无法在Api中发送两个参数,需要创建一个自定义类(例如follow)并按如下方式发送,

MyCustomRequest {
   public int[] documentIds;
   public int documentId;
}

and then, 接着,

public IHttpActionResult MassiveDelete([FromBody] MyCustomRequest  request)

you can access it as, 您可以按以下方式访问它:

request.documentIds;
request.documentId;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM