chaturvedi_anshumaan_20191 Ответов: 2

Как перезагрузить страницу после успешного или неудачного вызова ajax?


У меня есть фрагмент кода, который возвращает ответ на успех или ошибку на основе вызова Ajax.

Тревога и все работает нормально.

Как мне перезагрузить ту же страницу с сервера после этого вызова? Делает ли location.reload этот трюк?

$.ajax({
         type: "POST",
         url: "/ChurnFB/InsertQuestionnaireForExistingClCode",
         data: JSON.stringify(questions),
         contentType: "application/json; charset=utf-8",
         dataType: "json",
         success: function (response) {
          if(response.success)
             alert(response.responseText);
             (responseText is return of JSON coming from Controller action method.)
         }
     });



Я хочу добиться двух вещей :
a> Обновление той же страницы.
b> сделайте так, чтобы цвет границ текстовых полей, имеющих ошибки, вернулся к нормальному стилю по умолчанию.
Это код Javascript, для которого я хочу, чтобы стиль границы вернулся к значению по умолчанию.

question.CLCode = document.getElementById('valCLCode').value;
          question.QSerial = document.getElementById("txtQserial" + counter).value;


HTML код для которого я хочу чтобы borderColor вернулся из красного в нормальный:


&ЛТ;див ИД="insertDiv" класс="ряд-жидкость" стиль="дисплей:ни один;"&ГТ;
<div class="row" style="margin-left:0px;">
<div class="col-12">
<div class="widget-box">
<div class="widget-content nopadding">
&ЛТ;таблица ID="tblQuestion" класс="таблица"и GT;
<thead>
<tr>
<th>QSerial</th>
в <ом>У Дудакова&ЛТ;/й&ГТ;
в <ом&ГТ;вопрос&ЛТ;/й&ГТ;
в <ом&ГТ;описание&ЛТ;/й&ГТ;
в <ом>У AnswerType&ЛТ;/й&ГТ;
<th>ManualEntry</th>
в <ом>У Имя_скрипта&ЛТ;/й&ГТ;
<th>ParameterString</th>
<th>ValidFrom</th>
<th>ValidTill</th>
в <ом&ГТ;&ЛТ;/й&ГТ;
</tr>
</thead>
<tbody id="insertBody">
<tr id="tablerow0">
&ЛТ;тд&ГТ;&ЛТ;потребляемая стиль="Макс-ширина:в 50px;" тип="текст" идентификатор="txtQserial0" заполнитель="Qserial" требуется="требуется" /&ГТ;&ЛТ;/тд&ГТ;
&ЛТ;тд&ГТ;&ЛТ;потребляемая стиль="Макс-ширина:100 пикселей;" тип="текст" идентификатор="txtGroup0" заполнитель="Дудакова" требуется="требуется" /&ГТ;&ЛТ;/тд&ГТ;
&ЛТ;тд&ГТ;&ЛТ;текстовой стиль="Макс-ширина:110px;" тип="текст" идентификатор="txtQuestion0" заполнитель="вопрос" необходимо="требуется"&ГТ;&ЛТ;/textarea в&ГТ;&ЛТ;/тд&ГТ;
&ЛТ;тд&ГТ;&ЛТ;текстовой стиль="Макс-ширина:110px;" тип="текст" идентификатор="txtDescription0" заполнитель="описание" необходимо="требуется"&ГТ;&ЛТ;/textarea в&ГТ;&ЛТ;/тд&ГТ;
<td>
&ЛТ;выберите стиль="Макс-ширина:110px;" идентификатор="ddlAnswerType0"&ГТ;

&ЛТ;значение параметра="с" выбираются и GT;выберите&ЛТ;/вариант&ГТ;
&ЛТ;значение параметра="Н"И gt;номер&ЛТ;/вариант&ГТ;
&ЛТ;значение параметра="Т">текст</вариант&ГТ;
&ЛТ;значение параметра="с"&ГТ;флажок&ЛТ;/вариант&ГТ;
</select>
</td>
<td><input style="max-width:50px;" type="checkbox" id="chkManualEntryChkBox0" /></td>
&ЛТ;тд&ГТ;&ЛТ;текстовой стиль="Макс-ширина:110px;" тип="текст" заполнитель=" "скрипт " имя" идентификатор="txtScriptName0"&ГТ;&ЛТ;/textarea в&ГТ;&ЛТ;/тд&ГТ;
&ЛТ;тд&ГТ;&ЛТ;текстовой стиль="Макс-ширина:110px;" тип="текст" заполнитель="Строковый параметр" идентификатор="txtParameterString0"&ГТ;&ЛТ;/textarea в&ГТ;&ЛТ;/тд&ГТ;
&ЛТ;тд&ГТ;&ЛТ;входной стиль="Макс-ширина:140px;" тип="дата" заполнитель="Строковый параметр" идентификатор="validFrom0" /&ГТ;&ЛТ;/тд&ГТ;
&ЛТ;тд&ГТ;&ЛТ;входной стиль="Макс-ширина:140px;" тип="дата" заполнитель="Строковый параметр" идентификатор="validTill0" /&ГТ;&ЛТ;/тд&ГТ;
&ЛТ;тд&ГТ;&ЛТ;я ИД="addNewRow" стиль="курсор: указатель;цвет:серый; размер шрифта: 25 пикселей;обивка: 2 пикселя; дисплей:блок;" класс="ФАС Альфа-плюс-круг" Ария-скрытые="истинный"&ГТ;&ЛТ;/а&ГТ;&ЛТ;/тд&ГТ;
</tr>
</tbody>
</Таблица>
</div>
</div>
</div>

Что я уже пробовал:

Гуглю некоторые основные операции CRUD. Также пробовал использовать метод прерывания, но не очень полезно.

ZurdoDev

Да, location.reload перезагрузит страницу.

Christian Graus

Учитывая, что вы сделали вызов AJAX, почему вы хотите перезагрузить страницу? Разве ваш звонок не может дать вам все необходимые данные, и вы можете заполнить их без полного обновления? Вот для чего нужен Аякс

2 Ответов

Рейтинг:
1

Christian Graus

Учитывая, что вы сделали вызов AJAX, почему вы хотите перезагрузить страницу? Разве ваш звонок не может дать вам все необходимые данные, и вы можете заполнить их без полного обновления? Вот для чего нужен Аякс


Рейтинг:
0

chaturvedi_anshumaan_20191

Это было довольно просто. Вместо этого я мог бы сосредоточиться на том, чтобы остановить вызов AJAX, достигающий контроллера.
В контроллере я использовал :

return Json(new { success = true, responseText = "Saved successfully!" }, JsonRequestBehavior.AllowGet);



if (isValidate) {
          $.ajax({
          type: "POST",
          url: "/Controller/ActionMethod",
          data: JSON.stringify(questions),
          contentType: "application/json; charset=utf-8",
          dataType: "json",
          success: function (response) {
              if (response.success) {
                  alert(response.responseText);
                  location.reload(true);
              }
              else {
                  alert(response.responseText);
              }

          }
      });
      }



Вызов идет только тогда, когда проверка на стороне клиента заканчивается ,а затем после того, как ответ приходит от контроллера, после размещения предупреждающего сообщения, я мог бы перезагрузить страницу, чтобы отразить chnages, используя location.reload(true) принудительно перезагрузить с сервера.