【发布时间】:2021-08-10 22:19:59
【问题描述】:
我想要一个 API,只要调用“add”get 方法,整数就会增加 1。这是我的代码:
namespace test.Controllers
{
[Route("api/[controller]")]
public class testController : Controller
{
private int x;
public testController(){
x = 0;
}
[HttpGet]
public JsonResult Get(){return Json(x);}
[HttpGet("add")]
public JsonResult Add(){
x++;
return Json(x);
}
}
}
我意识到,如果我修改控制器类的构造函数:
public testController(){
x = 0;
x++;
}
当我转到“索引”时,x 的值为 1。在我看来,我可以在构造函数中更改 x 的值,但我根本无法在 HTTP 中更改 x 的值方法。
我尝试通过制作一个“普通”的类方法来解决问题,并使用HTTP方法调用该方法来修改x的值:
private void add() { x++; }
[HttpGet("add")]
public JsonResult Add(){
add();
return Json(x);
}
我认为,如果构造方法可以工作,那么类方法也应该可以工作。但是,它仍然不起作用。我不明白为什么以及如何解决这个问题?
【问题讨论】:
标签: c# api asp.net-core asp.net-apicontroller