Показать прогресс контроллера - PullRequest
0 голосов
/ 14 сентября 2018

Я создаю .NET Core приложение и хочу изменить текст на сайте в зависимости от хода действий контроллера.Ниже я написал короткий пример, показывающий, чего я хочу достичь.Некоторые вещи написаны в псевдокоде.

HomeController.cs

public class HomeController : Controller
{
    private readonly IHomeService _homeService;

    public HomeController(IHomeService homeService)
    {
        _homeService = homeService;
    }

    public IActionResult Detail(int id)
    {
        _homeService.ShowInfo(id);

        return View(model);
    }

HomeService.cs

public void FirstFunction()
{
    // write "Fetching results from database"
    ...
    // write "Results fetched successfully"
}

public void SecondFunction()
{
    // write "Parsing results"
    ...
    // write "Results parsed successfully"
}

public string ShowInfo(int id)
{
    FirstFunction();
    SecondFunction();
    return "Success!";
}

functions.js

$(document).ready(function() {
    $.ajax({
        'url' : 'Home/Detail',
        'type' : 'GET',
        'data' : {
            'id' : 123
        },
        'success' : function(data) {
            // update some html element based on "write" commands in
            // FirstFunction() and SecondFunction()
        }
    });
}

Как я могу обновить элементы HTML на веб-странице строками, которые FirstFunction и SecondFunctions "пишут"?Операции довольно продолжительны, и я хочу дать пользователю некоторую информацию о том, что происходит сейчас.

1 Ответ

0 голосов
/ 14 сентября 2018

Один из способов сделать это - позволить FirstFunction и SecondFunction установить некоторые переменные сеанса, а затем на стороне клиента использовать setinterval, чтобы инициировать запрос на получение сервера (используя Ajax), который возвращает значение параметры сеанса. Затем отобразите это пользователю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...