[英]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.