【发布时间】:2016-08-23 16:35:07
【问题描述】:
我正在使用带有 ASP.NET 和 AngularJS 的 REST API 创建项目。
我的仓库:
Class MyRepository {
private int myVariable;
public MyRepository() {
myVariable = 100;
}
public int getMyVariable() {
return myVariable;
}
public int Update(int data) {
myVariable = data;
return data;
}
}
控制器:
public Class MyController : ApiController {
private MyRepository repository = new MyRepository();
[Route("myRoute")]
public int getVariable() {
return getMyVariable();
}
[Route("myRoute")]
[HttpPut]
public IHttpActionResult Update(int data)
{
data = repository.Update(data);
return Ok(data);
}
}
JS服务中的方法:
getMyNumber = function () {
return $http.get("/myRoute");
};
updateMyNumber = function (number) {
return $http.put("/myRoute", number);
}
首先我调用函数getMyNumber。结果为 100(正常)。然后我将它更新为 50。有一个断点我可以看到它在存储库中确实是 50。当我再次调用getMyNumber函数时,结果是100。
看起来MyController 的构造函数被我的每个请求调用。如果是这样,更新数据和使用更新数据的方法是什么?
【问题讨论】:
-
考虑向您的 ApiController 添加一个构造函数并通过依赖注入注入您的存储库的一个实例。
标签: asp.net angularjs rest asp.net-web-api routing