Я пытаюсь отправить форму в 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>