Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.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
C# 提交表单时执行后台处理_C#_.net_Asp.net Mvc - Fatal编程技术网

C# 提交表单时执行后台处理

C# 提交表单时执行后台处理,c#,.net,asp.net-mvc,C#,.net,Asp.net Mvc,我有一个在用户提交表单时运行的操作方法 图像URL随模型一起传递 我希望能够对下载的图像执行一些处理,但我不希望处理过程中的延迟影响用户体验 那么,我如何在后台进行处理,同时愉快地提交表单呢?e、 g: ProcessImage(imageUrl); //do this in the background without delaying user experience 在收到图像之前,您无法更改用户的页面 但是,在您对图像进行gt处理后,您可以在BackGroundWorker中执行所需

我有一个在用户提交表单时运行的操作方法

图像URL随模型一起传递

我希望能够对下载的图像执行一些处理,但我不希望处理过程中的延迟影响用户体验

那么,我如何在后台进行处理,同时愉快地提交表单呢?e、 g:

ProcessImage(imageUrl); //do this in the background without delaying user experience  

在收到图像之前,您无法更改用户的页面


但是,在您对图像进行gt处理后,您可以在BackGroundWorker中执行所需的处理并提交页面。并让用户看到新的所需页面。

在客户端上显示一个繁忙的屏幕,让用户知道他正在等待文件下载。您可以通过下载到单独的iframe并检查iframe的状态来实现这一点,您可以使用jQuery发布imageurl。完成后将调用您的回调

function ProcessImageUrl(imgurl) 
{ 
   $.post('<%= Url.Action("AjaxProcessImage","AjaxFunctions") %>'
      , { url: imgurl }
      , function (data) {
         if (data.success) {
           alert("I'm done processing the image");
         }
         else {
            alert("Darn an error occurred: " + data.msg);
         }
   });
}

您可以使用后台工作程序。这可以作为异步方法完成吗?此方法的完成与用户无关。我只想在用户提交表单后的某个时刻进行图像处理。BackgroundWorker是专门为异步操作而设计的。您可以使用线程,但Backgroundworker是管理跨线程数据传输的简单方法。看看这个关于如何使用它的答案。。
   public ActionResult AjaxProcessImage(string url)
   {
      try
      {
          ProcessImage(url);
      }
      catch(System.Exception ex)
      {
         return Json(
               new
               {
                  success = false,
                  msg = ex.Message
               });
       }

      return Json(
            new
            {
               success = true
            });
   }