在执行异步方法时显示包含动画的页面,然后重定向

时间:2017-08-24 20:13:42

标签: c# asp.net-core asp.net-core-2.0

ASP.NET Core 2.0

public IActionResult Processing()
{
    DoWork();
    return View(); // returning Processing.cshtml
    // which contains page with animation
}

private async void DoWork()
{
    await DoSomething();
    // and here I want to redirect
    // from page with animation to
    // to an action
}

如何从异步方法重定向到操作? await DoSomething()处理数据时,动画页面必须始终显示。

1 个答案:

答案 0 :(得分:2)

基本上,你不能。

由于您没有等待<?php $postdata = file_get_contents("php://input"); mysqli_report(MYSQLI_REPORT_ALL); try { $link = new mysqli( 'localhost', 'test_account', 'test_password', 'database'); } catch(Exception $e) { echo 'Error: ' . $e->getMessage(); } if(isset($_POST['submit'])) { $klas = $_POST['klasDown']; $naam = $_POST['naamTxt']; $query = 'INSERT INTO resultaten (Klas, Naam, Percentages, Antwoorden) VALUES (?, ?, ?, ?)'; if ($stmt = $link->prepare( $query )) { $stmt->bind_param('ssss', $klas, $naam, $klas, $klas); $stmt->execute(); $stmt->close(); echo "Insertion succeed"; } else { echo "Insertion not succeed"; } } ?> 方法返回的Task,因此HTTP事务将在DoWork完成执行之前结束。

使用JavaScript切换到客户端解决方案:

  1. 开始运行动画
  2. 使用XHR
  3. 调用长时间运行的操作
  4. HXR完成时停止动画
  5. 请参阅此主题的例子:Show loading image while $.ajax is performed