Core MVC - ненавязчивый Ajax не существует - PullRequest
0 голосов
/ 21 мая 2019

В своем проекте Core MVC 2.2 я добавил JQuery Unobtrusive Ajax (v: 3.2.6) через пакеты Nuget.Во-первых, я заметил, что в wwwroot / lib не было добавлено локальной папки для него, также, если попробовать что-то простое, например:

@using (Ajax.BeginForm( ... 

Я получаю ошибку: CS0103 Имя Ajax не существует в текущемcontext

Посоветуйте, пожалуйста, как это исправить.

1 Ответ

1 голос
/ 22 мая 2019

Вы можете получить ненавязчивый AJAX из npm (npm i jquery-ajax-unobtrusive из консоли диспетчера пакетов в Visual Studio) или использовать один из множества способов, которые Visual Studio предоставляет для установки из Nuget.Если у вас есть его, вы можете создать для него новую папку в wwwroot\lib и скопировать туда файл (ы), а затем связать файл на своей странице _layout.

Вы также можете использовать LibMan, которыйбудет управлять вашими клиентскими библиотеками и автоматически устанавливать библиотеки по назначению, которое по умолчанию равно wwwroot\lib\YourLibrary, вы можете использовать либо GUI, либо LibMan cli.Установите Libman cli:

dotnet tool install --global Microsoft.Web.LibraryManager.Cli

Чтобы установить jquery-ajax-unobtrusive на npm, поскольку он еще не на cdnjs, мы можем использовать unpkg провайдера и использовать местоположение по умолчанию:

libman install -p unpkg jquery-ajax-unobtrusive

Еще один момент - разметка @using (Ajax.BeginForm( ... не поддерживается в .Net Core.Вместо этого команда ASP.NET Core рекомендует data-* атрибуты.Все существующие атрибуты @Ajax.Form доступны как атрибуты data-*:

<form asp-controller="Home" asp-action="SaveForm" data-ajax="true" data-ajax-method="POST">
</form>

Для MVC вы можете нажать здесь для примера кода.И здесь - это пример кода для версии Razor Pages.

...