Asp.NET在向用户会话添加数据时返回ActionResult

时间:2017-04-07 14:35:01

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

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

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

由于我的GetData()方法花费的时间太长,我想知道我是否可以执行某些操作 async ,以便在View正在运行时返回GetData()将对象添加到用户会话。 我已经考虑过将这个方法分成2个方法,第一个返回' View()'第二个用ajax调用,只是为了向会话添加对象,但我想用它作为最后的手段。

提前致谢!

1 个答案:

答案 0 :(得分:0)

  

因为我的GetData()方法花了太长时间,我想知道我是否可以   做一些异步,以便在GetData()时返回View   运行并将对象添加到用户会话。

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

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

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

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

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

相关问题