【发布时间】:2016-07-05 21:37:03
【问题描述】:
我正在尝试将收藏夹添加到收藏集 - List<Attraction> 每当用户单击所需 Attraction 的链接时。
我的Api Controller如下:
public class FavouritesController : ApiController
{
private List<Attraction> _favourites;
private readonly IRepository _repo;
public FavouritesController(IRepository repo)
{
_repo = repo;
}
public IEnumerable<Attraction> Get()
{
return _favourites;
}
[HttpPost]
public IHttpActionResult Add(int id)
{
if (_favourites == null)
{
_favourites = new List<Attraction>();
}
var attraction = _repo.FindAttractionById(id);
if (attraction == null)
{
return BadRequest();
}
_favourites.Add(attraction);
return Ok();
}
这是我的 AngularJS 服务:
function addToFavourites(id) {
$http.post("/api/v1/favourites/" + id)
.success(function(response) {
//Success
})
然后在页面的 Angular 控制器中:
$scope.addToFavourites = function() {
dataService.addToFavourites(this.attraction.id);
$scope.Favourites = dataService.getFavourites();
}
当我设置断点时它可以工作 - 但只向集合中添加一个项目 - 所以如果我点击第一个项目它会添加第一个项目,但是如果点击第二个项目它会添加第二个项目,但不会保留首先。
如果我在浏览器中向localhost:xxxx/api/v1/favourites 发出Get 请求,它只会在窗口中显示null。如何解决此问题并确保集合的状态保持一致?
【问题讨论】:
标签: c# angularjs asp.net-mvc asp.net-web-api