У меня есть этот контроллер:Web API 2 OData V4 PATCH вернуть 404
using System.Web.Http;
using System.Web.OData;
public class InvRecipientAutoInvoiceController : ODataController
{
// GET: odata/InvRecipientAutoInvoice
[EnableQuery]
public IQueryable<Inv_RecipientAutoInvoice> GetInvRecipientAutoInvoice()
{
return db.Inv_RecipientAutoInvoice.Where(a=>a.CompanyNumber == CompanyNumber);
}
[AcceptVerbs("PATCH", "MERGE")]
public IHttpActionResult Patch([FromODataUri] int RecipientNumber , [FromODataUri] int RecipientType, Delta<Inv_RecipientAutoInvoice> patch)
{
// XXXX Some Update Code
}
}
ГЭТ работает и я получаю результат и даже может сортировать их. но когда я делаю запрос PATCH, я получаю 404 ошибку, запрос PATCH:
Запрос URL: http://localhost:61240/odata/InvRecipientAutoInvoice(RecipientNumber%3D443%2CRecipientType%3D400)
Request Method: PATCH
- Response Body:
{ «ошибка ": { " code ":" "," message ":" Не найден ресурс HTTP, соответствующий запросу URI 'http://localhost:61240/odata/InvRecipientAutoInvoice(RecipientNumber=443,RecipientType=400) «.», «Innererror»: { «message»: «На контроллере« InvRecipientAutoInvoice »не найдено никаких действий, которые соответствуют запросу .», «Type»: «", "stacktrace": "" }} }
- тело запроса:
{"InvoiceLine1Description":"32132"}
Я использую его в веб-проекте ASP.net (не MVC),
регистр является:
config.MapODataServiceRoute(
routeName: "ODataRoute",
routePrefix: "odata",
model: builder.GetEdmModel());
Что мне не хватает?