私はこのコントローラを持っています:
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
}
}
GET が機能し、結果を取得して並べ替えることもできます。しかし、PATCH リクエストを実行すると、404 エラー、PATCH リクエストが発生します。
リクエスト URL: http://localhost:61240/odata/InvRecipientAutoInvoice(RecipientNumber%3D443%2CRecipientType%3D400)
Request Method: PATCH
- 応答本文:
{ "エラー":{ "コード":"","メッセージ":"要求 URI に一致する HTTP リソースが見つかりませんでした ' http://localhost:61240/odata/InvRecipientAutoInvoice(RecipientNumber=443,RecipientType=400) ' .","innererror":{ "メッセージ":"コントローラー 'InvRecipientAutoInvoice' で、要求に一致するアクションが見つかりませんでした。","type":"","stacktrace":"" } } }
- リクエスト本文:
{"InvoiceLine1Description":"32132"}
ASP.net Web プロジェクト (MVC ではない) で使用していますが、
レジスタは次のとおりです。
config.MapODataServiceRoute(
routeName: "ODataRoute",
routePrefix: "odata",
model: builder.GetEdmModel());
私は何が欠けていますか?