C#api 2.0 POST始终保持挂起状态,而不是返回数据

C#api 2.0 POST始终保持挂起状态,而不是返回数据,c#,api,C#,Api,我创建了一个web api,可以从角度前端调用它。当我调试Post调用时,它会按预期工作,但是当我返回“newItem”对象时,它会在网络XHR日志中不断显示pending。如果我将我的OK(newItem)更改为204状态代码,它会正常工作,并且不会保持挂起状态。有人知道是什么导致了这种行为吗?非常感谢 我的API代码 using DWP.Services.Interfaces; using DWP.ViewModels; using System.Web.Http; namespace D

我创建了一个web api,可以从角度前端调用它。当我调试Post调用时,它会按预期工作,但是当我返回“newItem”对象时,它会在网络XHR日志中不断显示pending。如果我将我的OK(newItem)更改为204状态代码,它会正常工作,并且不会保持挂起状态。有人知道是什么导致了这种行为吗?非常感谢

我的API代码

using DWP.Services.Interfaces;
using DWP.ViewModels;
using System.Web.Http;

namespace DWP.Api
{
    [Authorize()]
    [RoutePrefix("api/teamnewsviews")]
    public class TeamnewsViewsController : ApiController
    {

        ITeamnewsViewsService _teamnewsViewsService;

        public TeamnewsViewsController(ITeamnewsViewsService teamnewsViewsService)
        {
            this._teamnewsViewsService = teamnewsViewsService;
        }


        [HttpGet]
        // GET api/<controller>
        public IHttpActionResult Get(string teamnewsItemId)
        {
           TeamnewsViewsViewModel newsItem = new TeamnewsViewsViewModel();
           var teamNewsItem = _teamnewsViewsService.GetTeamnewsView(teamnewsItemId);

            newsItem.Id = teamNewsItem.Id;
            newsItem.TenantId = teamNewsItem.TenantId;
            newsItem.NewsItemId = teamNewsItem.NewsItemId;
            newsItem.ViewCount = teamNewsItem.ViewCount;

            return Ok(newsItem);
        }


        [HttpPost]
        [ActionName("Increment")]
        public IHttpActionResult Post(string teamnewsItemId)
        {
            if (teamnewsItemId == "")
            {
                return BadRequest("The newsitem Id is invalid");
            }

            var teamNewsItem = _teamnewsViewsService.GetTeamnewsView(teamnewsItemId);

            if (teamNewsItem == null)
            {
                return NotFound();
            }


            var newItem = _teamnewsViewsService.IncrementViewCount(teamNewsItem);



           // var updatedTeamnewsitem = _teamnewsViewsService.GetTeamnewsView(teamnewsItemId);

            return Ok(newItem);


        }

    }
}
使用DWP.Services.Interfaces;
使用DWP.ViewModels;
使用System.Web.Http;
名称空间DWP.Api
{
[授权()]
[RoutePrefix(“api/TeamNewsView”)]
公共类TeamnewsViewsController:ApicController
{
ITeamnewsViewsService团队新闻视图服务;
公共团队新闻视图控制器(iTeamNewsViews服务团队新闻视图服务)
{
这是._teamnewsViewsService=teamnewsViewsService;
}
[HttpGet]
//获取api/
公共IHttpActionResult获取(字符串teamnewsItemId)
{
TeamNewsViewsViewModelNewsItem=新的TeamnewsViewsViewModel();
var teamNewsItem=\u teamnewsViewsService.GetTeamnewsView(teamnewsItemId);
newsItem.Id=teamNewsItem.Id;
newsItem.TenantId=teamNewsItem.TenantId;
newsItem.NewsItemId=teamNewsItem.NewsItemId;
newsItem.ViewCount=teamNewsItem.ViewCount;
返回Ok(新闻项);
}
[HttpPost]
[ActionName(“增量”)]
公共IHttpActionResult帖子(字符串teamnewsItemId)
{
如果(teamnewsItemId==“”)
{
return BadRequest(“新闻项Id无效”);
}
var teamNewsItem=\u teamnewsViewsService.GetTeamnewsView(teamnewsItemId);
如果(teamNewsItem==null)
{
返回NotFound();
}
var newItem=\u teamnewsViewsService.IncrementViewCount(teamNewsItem);
//var updatedTeamnewsitem=\u teamnewsViewsService.GetTeamnewsView(teamnewsItemId);
返回Ok(新项目);
}
}
}
My db服务实现:

using DWP.Data.Helpers.Interfaces;
using DWP.Data.Model;
using DWP.Services.Interfaces;
using System.Linq;

namespace DWP.Services
{
    public class TeamnewsViewsService : ITeamnewsViewsService
    {
        private IUnitOfWork _unitOfWork;

        public TeamnewsViewsService(IUnitOfWork uow)
        {
            this._unitOfWork = uow;
        }

        public TeamnewsView GetTeamnewsView(string teamnewsId)
        {
            TeamnewsView teamnewsViews =
                this._unitOfWork
                .GetRepository<TeamnewsView>()
                .GetAll()
                .Where(tnv => tnv.NewsItemId == teamnewsId).FirstOrDefault();

            return teamnewsViews;
        }

        public TeamnewsView IncrementViewCount(TeamnewsView teamnewsView)
        {
            teamnewsView.ViewCount =  teamnewsView.ViewCount + 1;
            this._unitOfWork.Commit();


            var newTeamNewsItem = GetTeamnewsView(teamnewsView.NewsItemId);

            return newTeamNewsItem;
        }

    }
}
使用DWP.Data.Helpers.Interfaces;
使用DWP.Data.Model;
使用DWP.Services.Interfaces;
使用System.Linq;
命名空间DWP.Services
{
公共类TeamnewsViewsService:ITeamnewsViewsService
{
私人工作单位;
公共团队新闻视图服务(IUnitOfWork uow)
{
这是._unitOfWork=uow;
}
公共TeamnewsView GetTeamnewsView(字符串teamnewsId)
{
团队新闻视图团队新闻视图=
这是我的工作单位
.GetRepository()
.GetAll()
.Where(tnv=>tnv.NewsItemId==teamnewsId).FirstOrDefault();
返回TeamNewsView;
}
公共团队新闻视图增量视图计数(团队新闻视图团队新闻视图)
{
teamnewsView.ViewCount=teamnewsView.ViewCount+1;
这是。_unitOfWork.Commit();
var newTeamNewsItem=GetTeamnewsView(teamnewsView.NewsItemId);
返回newTeamNewsItem;
}
}
}

结果是,它对另一个表有一个单目引用错误。我通过制作一个viewmodel修复了它,如下代码所示

   TeamnewsViewsViewModel vm = new TeamnewsViewsViewModel();
        var newItem = _teamnewsViewsService.IncrementViewCount(teamNewsItem);
        vm.ViewCount = newItem.ViewCount;