Запустите фоновую задачу из действия контроллера в ядре asp.net 2

У меня есть решение, которое работает сейчас. Это взлом, поэтому он может не работать в ближайшем будущем, поскольку он обходит функции безопасности, упомянутые выше Ткаем.

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

customFileUploadButton.addEventListener('click', function(e) {

    var returnValueToCheck; //Value we want to check against

    //reference to vanilla JS ajax function that takes callback
    ajax(function(ajaxData) { 
        returnValueToCheck = ajaxData;
    });

    setTimeout(function() {
        if (returnValueToCheck !== undefined) { //dummy check for example
            file.click();
        } else {
           console.log("Criteria not fulfilled");
        }
    }, 1000);//timer should be larger than AJAX timeout
});

Честно говоря, я немного не уверен, почему именно эта работа за исключением явно проходящих определенных браузеров тестов, обычно запрещающих такое поведение. Поэтому я рассматриваю это как хак.

Моим примером является vanilla JS, но создать jQuery-версию должно быть легко. См. Этот JSFiddle для полного примера.

(Это мое первое участие в создании, поэтому, пожалуйста, прокомментируйте возможные ошибки и недочеты)

20
задан Waxren 13 April 2018 в 09:27
поделиться