【问题标题】:Asp.NET return ActionResult while adding data to user sessionAsp.NET 在向用户会话添加数据时返回 ActionResult
【发布时间】:2017-04-07 14:35:01
【问题描述】:

我有一个类似这个的方法:

 public ActionResult Index() 
 {    
    Session["test"] = GetData();
    return View(); 
 }

因为我的GetData() 方法耗时太长,我想知道我是否可以做一些事情async 以便在GetData() 正在运行并将对象添加到用户会话时返回View . 我已经考虑过将此方法拆分为 2 个方法,第一个方法返回“View()”,第二个方法使用 ajax 调用,仅用于将对象添加到会话中,但我想将此作为最后的手段。

提前致谢!

【问题讨论】:

  • 为什么可以在客户端使用AJAX异步加载数据?为什么这是你最后的手段?
  • 对长时间运行的任务使用异步方法将释放服务器上的线程,但不会提高对用户的响应能力。我同意 AJAX 似乎是要走的路——但当然这取决于是否有不立即将此对象添加到会话中的任何影响

标签: c# asp.net-mvc asynchronous actionresult


【解决方案1】:

因为我的 GetData() 方法耗时太长,我想知道我是否可以 在 GetData() 为时执行异步操作以返回视图 运行并将对象添加到用户会话。

您绝对不想在初始页面加载上运行长时间运行的查询。用户可能会认为网络连接丢失,并一直按 F5 刷新页面。

相反,您需要两种操作方法 -

  1. 第一个操作方法返回常规视图。然后在客户端,向 Action Method 2 发出 Ajax 请求。

  2. 第二个动作方法返回 JSON 响应

仅供参考:您要确保第二种操作方法需要用户登录才能访问。否则,您可能会遇到 DDoS 攻击。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-01
    • 1970-01-01
    • 2020-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多