簡體   English   中英

400(錯誤請求)-在AngularJS中更新值時

[英]400 (Bad Request) - When updating value in AngularJS

嘗試更新應用程序的信譽字段時,我總是收到400錯誤的請求。 它的目的是在聲譽提高或降低后保存價值。 它可以識別帖子的ID,因此應該不會有問題。 請注意,我對AngularJS還是很陌生,所以這可能很容易,但是我不知道。

這是后端:

// PUT api/Post/5
        public IHttpActionResult PutPost(int id, Post post)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            if (id != post.pid)
            {
                return BadRequest();
            }

            db.Entry(post).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!PostExists(id))
                {
                    return NotFound();
                }
                else
                {
                    throw;
                }
            }

            return StatusCode(HttpStatusCode.NoContent);
        }

功能:

$scope.increment = function (post) {
    post.reputation += 1;
    Post.update({ id: post.pid });
}

該工廠:

droppeApp.factory('Post', function ($resource) {
    return $resource('/api/Post/:id', { id: '@id' }, {
        update: { method: 'PUT' },
        delete: { method: 'DELETE' }
    });
});

以及視圖中的項目:

<span class="decrease right" ng-click="decrease(post);">-</span>
<span class="increment right" ng-click="increment(post);">+</span>

我相信您希望將資源對象本身作為Post.update的第二個參數Post.update

Post.update({id: post.id}, post);

IIRC您還應該能夠做到:

post.update();

看一下$ resource文檔,然后向下滾動至有關創建自定義放置請求的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM