Требование: Пользователь вызывает страницу, и я показываю, что страница загружается, когда я выполняю метод в фоновом режиме и перенаправляю URL-адрес, возвращаемый методом.Перенаправить страницу внутри метода асинхронизации
Пробовал использовать метод async в pageload, pagenotredirected как уже загружен. Пробовал обновление текстового поля от метода асинхронного и вызвать textboxonchange не работает страница aleady загружен Добавили код AJAX за уры предложения ознакомьтесь
я называю метод асинхронной внутри PageLoad и в PageLoad я отображение загрузки сообщения, после того, как async methos завершает, я получаю url, iam пытается перенаправить на этот url, но iam не может сделать это внутри async, поскольку страница уже загружена, поэтому iam обновляет скрытое текстовое поле с этим URL-адресом и использует событие onchange в этом текстовом поле и перенаправление, но все же страница не перенаправлена, может кто-то предложить лучший способ сделать это. Спасибо
<asp:TextBox runat="server" ID="urlTextBox" Value="" Style="display:none;" AutoPostBack="true" ></asp:TextBox>
$(document).ready(function() {
$('#urlTextBox').change(function() {
var keyword = $("#urlTextBox").val();
if (keyword.length > 0) {
window.location.href = keyword;
}
});
urlTextBox.Text = url;
urltextbox получает значение внутри метода асинхронной, как я обрабатываю процесс долго работает внутри асинхронном, чтобы получить этот URL
Я добавлял JS файл, в котором я называю метод C#, как этот
$(document).ready(function() {
$('#outputFromCmdLine').Text = "Loading...";
GetOutputFromCommandLine();
});
function GetOutputFromCommandLine() {
$.ajax({
type: "POST",
url: "Page.aspx/ConvertToBatch", //url to point your webmethod
contentType: "application/json; charset=utf-8",
dataType: "json",
async:true,
success: function (Result) {
window.location.href = Result;
},
error: function (request, status, error) {
alert(request.responseText);
}
});
и C# метод синхронизации метод и возвращает URL, как этот
[System.Web.Services.WebMethod()]
public static string ConvertToBatch()
{
some process
return urlstring;
}
Я также добавил имя JS файла в верхней части страницы ASPX, но ничего не вызывается, это правильный способ сделать это
<script type="text/javascript" src="/Scripts/jqueryFile.js"></script>
Скорее всего, событие изменения никогда не запускается, поскольку пользователь не является источником этого изменения. –
Я тестировал, что на самом деле событие запускается, если я изменяю текстовое поле в коде до того, как страница загружается и перенаправляется на эту страницу, но если я поместил его в async, который завершается только после загрузки страницы, событие не запускается. – user2933504
Может кто-то предложить лучший способ сделать это, пожалуйста, – user2933504