【问题标题】:ASP.Net/C# How can method string return be stored for later use in another method?ASP.Net/C# 如何存储方法字符串返回以供以后在另一个方法中使用?
【发布时间】:2020-08-19 22:47:19
【问题描述】:

有人可以建议如何将此方法返回的输出存储为可用的字符串或字符格式,以便在不同的方法中用作变量吗?我尝试过按值、按引用、数组格式、char 格式实现、字符串格式实现、Char.ToString()String.ToCharArray() 等方式传递。

我定义了一个计时器让 accessTokenRequest() 以设定的时间间隔执行:

protected void accessTimer_Tick(object sender, EventArgs e)
{
    var test = randomCharGen();
    //accessLiteral.Text = randomCharGen(); //this generates automated new values upon each refresh interval as what is stored in the variable
    accessLiteral.Text = test;
}
<asp:Timer ID="accessTimer" runat="server" Interval="10000" OnTick="accessTimer_Tick"></asp:Timer>
<asp:UpdatePanel ID="accessUpdatePanel" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <asp:Literal ID="accessLiteral" runat="server"></asp:Literal>
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="accessTimer" EventName="tick" />
    </Triggers>
</asp:UpdatePanel>       

此响应是我试图存储以供以后在 Web.UI.Timer 函数中使用的内容:

private static string accessTokenRequest()
{          
    var client = new RestClient("'api'");
    client.Timeout = -1;
    var request = new RestRequest(Method.POST);
    request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
    request.AddParameter("grant_type", "refresh_token");
    request.AddParameter("refresh_token", "'token'");
    request.AddParameter("client_id", "'id'");
    IRestResponse response = client.Execute(request);
   
    dynamic access = JsonConvert.DeserializeObject(response.Content);      
    string[] accessTokenArray = new string[1];
    accessTokenArray[0] = access.access_token.ToString();
    return accessTokenArray[0];    

}

我可以解析 JSON 响应以获取所需的字段,但是,我无法找到一种方法或创建结果,我可以将目标值存储在一个变量中以供以后使用,而无需调用该方法再次。由于没有实现数据库来存储响应然后从那里消费(不需要),我不太确定我可能还有什么其他选择。任何建议表示赞赏。

【问题讨论】:

  • MemoryCache 是我建议开始的地方。或static 字段。
  • 这是一个 XY 问题。请将问题表述为您遇到的问题,而不是您所拥有的解决方案的问题。 xyproblem.info
  • 一个 cookie。这是您需要为不同方法/页面存储的短期变量的 HTTP 标准

标签: c# asp.net string methods


【解决方案1】:

考虑使用

window.localStorage - 存储没有过期日期的数据

window.sessionStorage - 存储一个会话的数据(关闭浏览器选项卡时数据丢失)

*https://www.w3schools.com/html/html5_webstorage.asp

也可以考虑使用会话变量

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-18
    • 2012-07-04
    • 1970-01-01
    • 1970-01-01
    • 2021-08-14
    • 2021-01-14
    • 2011-09-27
    相关资源
    最近更新 更多