我有一个类似于这个的方法:
public ActionResult Index()
{
Session["test"] = GetData();
return View();
}
由于我的GetData()
方法花费的时间太长,我想知道我是否可以执行某些操作 async ,以便在View
正在运行时返回GetData()
将对象添加到用户会话。
我已经考虑过将这个方法分成2个方法,第一个返回' View()'第二个用ajax调用,只是为了向会话添加对象,但我想用它作为最后的手段。
提前致谢!
答案 0 :(得分:0)
因为我的GetData()方法花了太长时间,我想知道我是否可以 做一些异步,以便在GetData()时返回View 运行并将对象添加到用户会话。
您绝对不希望在初始页面加载上运行长时间运行的查询。用户可能认为网络连接丢失,并持续按F5刷新页面。
相反,您需要两种操作方法 -
第一个操作方法返回常规视图。然后在客户端,您向Action Method 2发出Ajax请求。
第二个操作方法返回JSON响应
仅供参考: 您希望确保第二个操作方法需要用户登录才能访问。否则,您可能会遇到DDoS攻击。