Ajax.Beginform не вызывает метод onsuccess в javascript - PullRequest
0 голосов
/ 05 мая 2019

Я пытаюсь отправить форму в mvc с помощью Ajax.beginform и выполнить функцию успеха. Функция указана в форме и создана в разделе скриптов. Однако эта функция не срабатывает после отправки сообщения.

Представление является частичным и вставляется на страницу указателя.

Метод, который форма вызывает в контроллере, является HttpPost и возвращает представление снова, что заставляет страницу индекса загрузиться снова (я подозреваю, что здесь проблема)

По сути, я пытаюсь добиться того, чтобы на моей странице указателя (основной) показывалось сообщение об успешной записи.

Кроме того, в моей конфигурации пакета у меня есть jquery val и jquery.validate.unobtrusive.js и в web.config, который я добавил в appconfig

Что может быть не так? Вот мой код

   [HttpPost]
    public async Task<ActionResult> EditPostedJob(JobPost job, string dt)
    {

        using (var context = new ApplicationDbContext())
        {
            var post = (from p in context.jobPosts where p.JobPostId == job.JobPostId select p).First();
            post.AboutJob = job.AboutJob;
            post.Headline = job.Headline;
            post.JobAddress = job.JobAddress;
            post.JobCity = job.JobCity;
            post.JobPostCode = job.JobPostCode;
            await context.SaveChangesAsync();

            //return Json(post,JsonRequestBehavior.AllowGet);
            return RedirectToAction("Index", "Manage");

        }

    }

на моем главном экране у меня есть это сообщение

 <div id="success-edited-job" class="alert alert-success">
            <strong>Success!</strong> the posted job has been         successfully edited.
        </div>

а также у меня есть js, который скрывает это при загрузке страницы. И затем я добавляю частичное представление с формой, и там устанавливается div успеха-edited-job, чтобы показать, когда публикация успешна, но она снова возвращает индексное представление, и div снова скрывается.

это моя частичная форма просмотра

   @using (Ajax.BeginForm("EditPostedJob", FormMethod.Post, new     AjaxOptions() { OnSuccess = "JobEditedSuccessfully", OnFailure = "JobEditFail",HttpMethod="POST" }))

и JS

   <script type="text/javascript">


    function JobEditedSuccessfully(data) {
        alert("lol");


    }

    function JobEditFail(error) {
        console.error(error);
    }

   </script>
...