Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery MVC在MVC中为进度条维护两个操作之间的值_Jquery_Asp.net Mvc - Fatal编程技术网

Jquery MVC在MVC中为进度条维护两个操作之间的值

Jquery MVC在MVC中为进度条维护两个操作之间的值,jquery,asp.net-mvc,Jquery,Asp.net Mvc,我有一个ActionResult,它调用API并返回数据,但这需要很多时间,所以我想显示一个进度条,所以我对另一个ActionResult进行了ajax调用,并使用session维护它们之间的数据,但它不适用于多个请求,而且由于会话锁定而导致延迟。有更好的方法吗 我的第一个action2像循环一样执行,我需要action1中的循环值来显示进度并将其返回到ajax调用 我的代码是这样的:- setInterval(extendsession, 2000); function extend

我有一个ActionResult,它调用API并返回数据,但这需要很多时间,所以我想显示一个进度条,所以我对另一个ActionResult进行了ajax调用,并使用session维护它们之间的数据,但它不适用于多个请求,而且由于会话锁定而导致延迟。有更好的方法吗 我的第一个action2像循环一样执行,我需要action1中的循环值来显示进度并将其返回到ajax调用

我的代码是这样的:-

 setInterval(extendsession, 2000);
    function extendsession() {
        $.ajax({
            url: '@Url.Action("Action1", "Controller")',
            type: 'get',

            async:true,
            success: function (result) {
                $("#status").html(result);
                var progress = []; var progressPercentage;
                if (result != "") {
                    progress = result.split(",");
                    progressPercentage = (progress[1]);
                }

                $("#progressbar").progressbar({
                    value: parseInt(progressPercentage)
                });
            },

        });
行动是

public ActionResult Action2()
        { 
while(true)
do api call..
         Session["ProgressPercentage"]   //sava data in session
}

//below action is called by ajax to get progress
public string Action1()
{
return Session["ProgressPercentage"].toString(); 
}
编辑


不,实际上,我必须获取数据并在ajax中返回,因此我需要一种更好的方式在操作之间首先共享数据,使用会话会导致会话锁定等问题。检查更新的答案。使用setInterval时,临时数据会在多个请求中丢失@Rushee-你知道TempData使用会话,对吗?@ErikFunkenbusch是的,我知道
  public ActionResult acetion1()
  { //Api call
    TempData["Result"] = "ProgressPercentage";
  } 

public ActionResult action2()
{
    var result= TempData["Result"];
    return result;
}