Ajax.Beginform不会在javascript中触发onsuccess方法

时间:2019-05-05 14:27:29

标签: ajax asp.net-mvc asp.net-ajax ajax.beginform

我正在尝试使用Ajax.beginform在mvc中发送表单并执行成功函数。该函数在表单中声明,并在脚本部分中创建。但是,帖子提交后不会触发该功能。

该视图是部分视图,并已插入“索引”页面。

窗体在控制器中调用的方法是HttpPost并再次返回视图,这导致索引页再次加载。(我怀疑这是问题所在)

基本上,我想实现的目标是在我的索引页(主)中显示一个div,表示已成功编辑记录。

此外,在我的捆绑包配置中,我加载了jQuery val和jquery.validate.unobtrusive.js,并在我添加到appconfig中的web.config中

可能是什么问题?这是我的代码。

   [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以显示发布成功的时间,但它再次返回索引视图,并且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>

0 个答案:

没有答案