data-ajax-update не работает в ядре dotnet jquery ненавязчивый ajax - PullRequest
0 голосов
/ 10 декабря 2018

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

Это мой код контроллера

public class HomeController : Controller
{
   public ActionResult OnGetPartial()
    {
        return PartialView();
    }
}

Это мой код PartialView

<p>Hello from the Hello World partial at @DateTime.Now</p>

Это мой индекси _layout code.

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>@ViewData["Title"] - IntegTest</title>              
    <link rel="stylesheet" href="~/css/site.css" />
</head>
<body>
            @RenderBody()       
        <script src="~/lib/jquery/dist/jquery.js"></script>              
        <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"
                asp-fallback-src="~/lib/jquery/dist/jquery.min.js"
                asp-fallback-test="window.jQuery"
                crossorigin="anonymous"
                integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=">
        </script>                 
    <script src="~/lib/jquery-validation/dist/jquery.validate.js"></script>
    <script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"></script>
    <script src="~/lib/jquery-validation/dist/additional-methods.js"></script>
    <script src="~/js/site.js" asp-append-version="true"></script>    
    @RenderSection("Scripts", required: false)
</body>
</html>

Индекс

<a href="" data-ajax="true" data-ajax-url="@Url.Action("OnGetPartial","Home")" data-ajax-update="#panel" data-ajax-complete="completed" data-ajax-failure="failed">Click Here!</a>
<div id="panel">        
</div>
<script>
    completed = function (xhr) {
        alert('hi ${xhr.responseText}!');
    }
    failed = function (xhr) {
        alert('Status: { xhr.status }, Status Text: { xhr.statusText}');
    }
</script>

1 Ответ

0 голосов
/ 11 декабря 2018

Вам нужно использовать библиотеку JQuery Unobtrusive AJAX, ее можно найти в Github:

https://github.com/aspnet/jquery-ajax-unobtrusive

Вы можете скачать файл по ссылке выше (в папке src)или установите его из Nuget в VS.Затем вам нужно связать файл на странице _layout:

<script src="~/lib/jquery-validation-unobtrusive/jquery.unobtrusive-ajax.js"></script>

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

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