2

OData を使用して Web API にデータを送信しようとしており、Web API コントローラー メソッドをデバッグできますが、モデル Web API を返すときにエラー '501 エラー コード' がスローされます。

JQueryを使用してこの呼び出しを行います:

  OData.request(
          {
              requestUri: "/odata/Products",
              method: "POST",
              data: {
                  ID:"22",
                  Name : "Hat1", 
                  Price: 122, 
                  Category : "Apparel" 
              }
          },
          function (data) {
              alert(data.Price);
          });

私のコントローラーは:

public class ProductsController : EntitySetController<Product, int>
    {
        ProductsContext _context = new ProductsContext();

        [Queryable]
        public override IQueryable<Product> Get()
        {
            return _context.Products;
        }

        protected override int GetKey(Product entity)
        {
            return entity.ID;
        }

        protected override Product GetEntityByKey(int key)
        {
            return _context.Products.FirstOrDefault(p => p.ID == key);
        }

        protected override Product CreateEntity(Product entity)
        {           

            return entity;
        }
}

CreateEntityメソッドは正常に動作していますが、コンソール ログに「501 実装されていません」というエラーがスローされています。

ありがとう..

4

1 に答える 1

1

私はHttpResponseMessageで投稿しようとしましたが、うまくいきました:)

public override HttpResponseMessage Post(UserEntity user)
            {


                var response = Request.CreateResponse(
                    HttpStatusCode.Created,
               `enter code here`     user);
                response.Headers.Location = new Uri(Url.ODataLink(
                    new EntitySetPathSegment("User"),
                    new KeyValuePathSegment(user.UserID.ToString())));
                return response;
            }
于 2013-08-20T11:40:03.173 に答える