【问题标题】:How get string from class如何从类中获取字符串
【发布时间】: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),每个用户都会看到相同的值。这可能不是是你想要的。
  • 感谢您的回答

标签: c# asp.net .net


【解决方案1】:

您将希望从控制器返回 Json,然后在前端 JavaScript 上处理它。

将您的 Get 方法更改为:

[HttpGet]
public string Get()
{
    return Json(Repositions.StrocTable);
}

【讨论】:

    猜你喜欢
    • 2012-02-03
    • 1970-01-01
    • 2014-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多