【发布时间】:2018-11-08 07:07:07
【问题描述】:
我有 Api 控制器
public class JsonController : Controller
{
private readonly IRepositor _repositor;
public JsonController(IRepositor repositor)
{
_repositor = repositor;
}
// GET: api/Json
[HttpGet]
public string Get()
{
return Repositions.StrocTable;
}
// POST: api/Json
[HttpPost]
public void Post([FromBody]List<Json> jsons)
{
_repositor.DataSetTwo(jsons);
}
}
和类
public class Repositions : IRepositor
{
public static string StrocTable { get; set; }
public void DataSetTwo(List<Json> cheked)
{
for (int i = 0; i < cheked.Count && cheked[i].Name == "Check"; i++)
StrocTable += cheked[i].Value;
}
}
所以我想执行这个脚本
$.ajax({
type: 'POST',
url: '/api/Json',
data: JSON.stringify(jsons),
contentType: 'application/json'
}).done($(hash).empty();
$.get('/api/Json').done(function (Stroctable) {
$('#Tables').append(Stroctable);
}););
当我第二次执行后,我得到了空字符串,我得到了第一次应该出现的字符串。 我不知道如何称呼这个问题。 谢谢。
【问题讨论】:
-
您应该查看用于 Web api 的控制器的生命周期 (stackoverflow.com/a/1763908/8336973)。简而言之:每个请求都有一个新的控制器。由于在执行
Get请求时未设置Repositions.StrocTable。 -
通过使用
static属性(StrocTable),每个用户都会看到相同的值。这可能不是是你想要的。 -
感谢您的回答