进行Ajax调用后,如何重定向到.Net Core中的操作?

我有一个脚本,可以对控制器中的动作进行ajax调用并保存一些记录。

整个过程运行良好,但是我的小问题是在成功保存记录后重定向到另一个页面。

在下面的代码中,记录已成功添加,并带有警报,指示该警报已在代码“ msg + "Courses were Registered"”中进行了描述。我不想让它重定向到操作。

JavaScript代码:

 <input type="submit" value="Register Courses" id="register" class="btn btn-rose" />
        <script>
            $(document).ready(function () {

                $("#register").click(function () {
                   var items = [];
               $('input:checkbox.checkBox').each(function () {
                        if ($(this).prop('checked')) {
                        var item = {};
                        item.CourseID = $(this).val();
                        item.CourseCode = $(this).parent().next().html();
                        item.CourseName = $(this).parent().next().next().html();
                        item.Units = $(this).parent().next().next().next().html();
                        items.push(item);
                    }
                    });

                    var options = {};
                    options.url = "/Course/SaveCourse";
                    options.type = "POST";
                    options.dataType = "json";
                    options.data = JSON.stringify(items);
                    options.contentType = "application/json; charset=utf-8;";
                    options.success = function (msg) {
                        alert(msg + " Courses were Registered");
                    };
                    options.error = function () {
                        alert("Error while Registering Courses");
                    };
                    $.ajax(options);
                });

            });

        </script>

控制器

 [HttpPost]
        public IactionResult SaveCourse([FromBody]List<CourseRegModel> courseIDs)
        {

            var user = HttpContext.Session.GetString("currentUser");
            if (user == null)
            {
              return RedirectToaction("Login","account");
            }
            ViewBag.student = user;
            var pendingPayment = (from row in _context.BursaryTransactions where row.MatricNo == user && row.ResponseCode == "021" select row).Count();
            if (pendingPayment > 0)
            {
                return RedirectToaction("PaymentSummary","Student");
            }
            var student = _context.StStudentInfo.Include(m =>m.AdmInstProgramme.AdmInstDepartment).Include(m =>m.AdmInstClassLevels).FirstOrDefault(m => m.MatricNo == user);
            var session = _context.AdmInstProgrammeTypeSession.Include(m => m.AdmInstSemesters).Include(m => m.AdmInstSessions).Include(m => m.AdmInstProgramType).Where(m => m.Isactive == true).FirstOrDefault(m => m.ProgramTypeId == student.ProgrammeTypeId);
            foreach (CourseRegModel courseID in courseIDs)
            {
                courseID.Level = student.AdmInstClassLevels.ClassLevel;
                courseID.Semester = session.AdmInstSemesters.Semester;
                courseID.Session = session.AdmInstSessions.SessionName;
                courseID.Department = student.AdmInstProgramme.AdmInstDepartment.Department;
                _context.CourseRegModel.Add(courseID);

            }
            int courses = _context.SaveChanges();

            return Json(courses);
        }

目标是return RedirectToaction("MyCourses","Courses");之后的SaveChanges();

sky68242 回答:进行Ajax调用后,如何重定向到.Net Core中的操作?

如果要重定向到其他操作方法,为什么要使用AJAX?但是我认为您可以通过在客户端AJAX成功执行响应后在客户端AJAX中执行重定向来解决此问题,您可以使用JavaScript进行重定向

,

您只需在ajax的成功处理程序中重定向页面,

options.success = function (msg) {
    window.localtion.href = "/Courses/MyCourses";
    // or window.location.href = '@url.Action("MyCourses","Courses")';
};
本文链接:https://www.f2er.com/3150417.html

大家都在问