本文介绍了无法访问我的api rest的方法删除的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时删除!!

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

I'm not able to access to my delete method of my api rest.

如果我编写这样的方法,它将起作用:

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();
        }
    }

我没有acces,有什么想法吗?

I don't have acces, any ideas what could it be?

这是我的请求代码:

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);
}

推荐答案

您无法在Api中发送两个参数,您需要创建一个自定义类(例如follow和send),

You cannot send two parameters in your Api, you need to createa custom class like follow and send as follows,

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

然后

public IHttpActionResult MassiveDelete([FromBody] MyCustomRequest  request)

您可以按以下方式访问它,

you can access it as,

request.documentIds;
request.documentId;

这篇关于无法访问我的api rest的方法删除的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

1403页,肝出来的..

09-06 16:47