Rajeshyadav12 Ответов: 1

Как реализовать опрос на основе AJAX в ASP.NET приложение MVC для получения изменений из базы данных


I want to implement AJAX based polling to get the changes made in the database without refreshing the page. Can anyone please suggest me how to do this? I do not have any idea.

Please provide me with some sample solutions.
Заранее спасибо.

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

Я понятия не имею, как это осуществить.

W∴ Balboos, GHB

Несмотря на решение, имейте в виду, сколько из них будет запущено в любой момент времени и какой сетевой трафик это может вызвать. Один человек - ничего страшного. Веб не имеет состояния по какой-то причине.

Member 11556103

ХХХХХ

Member 11556103

jjkklkk

Member 11556103

xvdxvdf

1 Ответов

Рейтинг:
8

Karthik_Mahalingam

попробовать это

<script>

    var interval = 5; // 5 seconds
    interval = interval * 1000;
    var obj = {}; // specify the parameters
    window.setInterval(poll, interval);
    function poll() {
        $.ajax({
            url: "/ControllerName/YourActionName",
            type: "POST",
            data: obj,
            dataType: "json",
            traditional: true,
            contentType: "application/json; charset=utf-8",
            success: function (data) {
                // process the data
            },
            error: function () {
                alert("An error has occured!!!");
            }
        });
    }

</script>


[HttpPost]
      public ActionResult YourActionName() {
          object data ;
          // Your logic to get the data from DB
          return Json(data);
      }


относиться на jQuery."Аякс" () | библиотека jQuery API документация[^]
Метод Window setInterval() [^]


Rajeshyadav12

@karthik,я понятия не имею, что поставить под var obj = {}; и success: function (data) {
// обработка данных
},

Мой контроллер возвращается:

[HttpPost]
public ActionResult GetStatus()
{
TestHandle sdb = новый TestHandle();

вернуть в формате JSON(СДБ.GetPhoneData());
}

И моя точка зрения примерно такова:

@model IEnumerable<testproject.models.test>


@foreach (элемент var в модели)
{
@Html.DisplayFor(modelItem => item.Имени)
@Html.DisplayFor(modelItem => item.Lname в)

}


интервал var = 5; // 5 секунд
интервал = интервал * 1000;
var obj = {Id}; // укажите параметры
window.setInterval(опрос, интервал);
опрос функций() {
$.Аякс({
url: '/ Home/GetStatus',
тип: "почта",
данные: obj,
тип данных: "json",
традиционный: правда,
contentType: "application/json; charset=utf-8",
успех: функция (данные) {
отладчик;
Код = сведения.Идентификатор
// обработка данных
},
функция ошибок () {
предупреждение("произошла ошибка!!!");
}
});
}

Я использую частичное представление с именем "GetStatus" и хочу, чтобы оно отображало изменения, внесенные в базу данных, без обновления страницы. Пожалуйста, веди меня. Спасибо, Картик.

Karthik_Mahalingam

если у вас нет никакого параметра то оставьте это как есть
var obj = {};
и
успех: функция (данные) {
в объекте данных вы получите ответ от сервера, так что вы можете делать с данными все, что захотите.

Я использую частичное представление с именем "GetStatus" и хочу, чтобы оно отображало изменения, внесенные в базу данных, без обновления страницы.
хорошо напишите код в представлении

Rajeshyadav12

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

Rajeshyadav12

@Karthik, я уже написал этот код в GetStatus.cshtml. Но это вызывает предупреждение об ошибке("произошла ошибка!!!"); я вставил свой код сверху. Пожалуйста, веди меня.

Karthik_Mahalingam

смотрите точное сообщение об ошибке, используя приведенный ниже код.

 error: function(xhr, status, error) {
    alert(xhr.responseText);
 }

Rajeshyadav12

Сообщение об ошибке "ресурс не может быть найден".

Karthik_Mahalingam

убедитесь, что у вас есть контроллер с именем "Home" и метод с именем "GetStatus"
раз уж вы это называете
url: '/Home/GetStatus',

Rajeshyadav12

@Karthik, URL-адрес такой же, как вы написали. Пожалуйста, проверьте приведенный выше код. Спасибо.

Karthik_Mahalingam

пробовать
url: 'Home/GetStatus',

Member 11556103

adsad

Member 11556103

аааааааа