Документация по вспомогательным тегам Ajax в Asp.net Core - PullRequest
0 голосов
/ 03 мая 2018

Есть ли какая-либо ссылка на документацию по вспомогательным тегам Ajax в Asp.net Core. Я пытаюсь изучить AJAX с ядром asp.net, но я не нашел документации для этого. В asp.net mvc мы используем @ Ajax.Form, а затем используем метод AjaxOptions для работы над ajax. После многих часов поиска я нашел эту ссылку. https://dotnetthoughts.net/jquery-unobtrusive-ajax-helpers-in-aspnet-core/ В этой ссылке есть способ работы с ajax в ядре asp.net. Я внедряю это в свой проект и успешно. Затем я ищу его документацию, но ничего не нашел. Я хочу ссылку на документацию. Пожалуйста, кто-нибудь поможет с его документацией

Ответы [ 2 ]

0 голосов
/ 25 мая 2019

https://github.com/Behrouz-Goudarzi/AjaxTagHelper

AjaxTagHelper

Простое решение для использования ссылок и форм ajax с использованием Tag Helper в ядре aspnet

Сначала скопируйте класс AjaxTagHelper из папки Extensions в ваш проект.

Во-вторых, скопируйте файл AjaxTagHelper.js из папки js в wwwroot и добавьте его в свой проект.

Затем выполните следующие действия: Откройте файл viewImports и добавьте следующий код

@using AjaxTagHelper.Extensions
@using AjaxTagHelper
@using AjaxTagHelper.Models
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper *, AjaxTagHelper

Чтобы использовать Action Ajax, добавьте следующий код вместо тега.

  <ajax-action ajax-action="Delete" ajax-controller="Home" ajax-data-id="@Model.Id"
                 class="btn btn-danger btn-sm" ajax-success-func="SuccessDelete">
        Delete
    </ajax-action>

Используйте следующий код, чтобы использовать AJAX для отправки формы на сервер.

<div class="row">
    <form id="frmCreate" class="col-sm-9">
        <div class="row">
            <div class="col-sm-4 form-control">
                <input placeholder="Enter Name" name="Name" class="input-group" type="text" />
            </div>
            <div class="col-sm-4 form-control">
                <input placeholder="Enter Family" name="Family" class="input-group" type="text" />
            </div>
            <div class="col-sm-4 form-control">
                <input placeholder="Enter Email@site.com " name="Email" class="input-group" type="email" />
            </div>
        </div>
    </form>
    <div class="col-sm-3">
        <ajax-button ajax-controller="Home" ajax-action="Create" ajax-form-id="frmCreate" ajax-success-func="SuccessCreate"
                     class="btn btn-sm btn-success">
            Create
        </ajax-button>
    </div>
</div>

Наконец, добавьте скрипты, необходимые для его просмотра, проверьте код ниже

<script>
    function SuccessCreate(data) {
        console.log(data);
        $("#tbodyPerson").append(data);


    }
    function SuccessDelete(data) {
        $("#tr" + data.id).fadeOut();
    }
</script>
<script src="~/js/AjaxHelper.js"></script>
0 голосов
/ 03 мая 2018

В ASP.NET Core нет серверных помощников, таких как @Ajax.Form. Возможно, вы могли бы написать свои собственные помощники тегов для аналогичных функций, но я не видел, чтобы кто-нибудь делал это. Основная идея заключается в написании реального JavaScript, когда вы хотите иметь поведение на стороне клиента. Скрывать эти вещи за магией на стороне сервера обычно не лучшая идея.

jquery-ajax-unobtrusive - это пакет JavaScript, который добавляет поведение на стороне клиента для поиска различных атрибутов на конечной отображаемой странице, чтобы добавить функциональность поверх ваших стандартных форм. Так что это будет полностью решение на основе JavaScript.

К сожалению, нет документации по этому поводу. Вы можете взглянуть на его исходный код , чтобы выяснить, что может или не может быть возможным.


jquery-ajax-unobtrusive документация

После быстрого взгляда на источник (отказ от ответственности: без тестирования самой функциональности), это, кажется, поддерживаемые атрибуты данных и доступная функциональность пакета:

  • data-ajax="true" - включить функциональность для формы.
  • data-ajax-update - Селектор для элементов, которые обновляются в результате AJAX, используя режим.
  • data-ajax-mode
  • data-ajax-confirm - Сообщение, которое отображается пользователю для подтверждения отправки формы.
  • data-ajax-loading - Селектор элемента, который отображается при загрузке.
  • data-ajax-loading-duration (по умолчанию: 0) - Длительность анимации для show / hide загружаемого элемента.
  • data-ajax-method - позволяет перезаписать метод HTTP для запроса AJAX.
  • data-ajax-url - позволяет перезаписать URL-адрес для запроса AJAX.
  • data-ajax-cache - Установите значение, отличное от "true", чтобы отключить параметр jQuery AJAX cache .
  • data-ajax-begin - функция обратного вызова перед началом запроса (аргументы: xhr)
  • data-ajax-complete - функция обратного вызова при завершении запроса (аргументы: xhr, status)
  • data-ajax-success - функция обратного вызова при успешном выполнении запроса (аргументы: data, status, xhr)
  • data-ajax-failure - функция обратного вызова при сбое запроса (аргументы: xhr, status, error)

Функции обратного вызова эквивалентны beforeSend, complete, success и failure в jQuery. Исходя из того, как это выглядит, вы можете указать обратные вызовы, используя путь объекта JavaScript к функции.

Например, data-ajax-success="foo.bar.onSuccess" вызовет функцию foo.bar.onSuccess(), то есть он будет искать объект foo в window, получит его bar член и вызовет onSuccess для этого.

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