0

我从视图上的 JavaScript 函数调用此 ActionResult 控制器方法。该函数运行良好,ActionResult 控制器方法运行良好,但它应该移动到不同视图的最后一行没有发生。我可以单步执行新视图上的代码行,但是在单步执行新视图上的代码行之后,仍会显示原始视图。$.get() 调用的使用是否正确?或者我应该使用其他一些 jquery 方法来调用控制器。在这种情况下,我不需要从控制器返回任何内容,只需运行一些数据库代码并移动到新视图。

控制器:

        if (ModelState.IsValid)
        {
            System.Web.Security.MembershipUser user = Membership.GetUser();
            var job = (from j in db.Jobs where j.ID == id select j).First();
            job.DriverMembershipUserName = user.UserName.ToString();
            job.JobStatus = "Purchased";
            ViewBag.PurchaseMessage = "Thank you for purchasing this job.";
            db.Entry(job).State = EntityState.Modified;
            db.SaveChanges();

            return View("JobDetail", job);                
        }

来自原始视图页面的 JavaScript 调用:

var url = "/Job/PurchaseJobFinalize/" + JobID;
$.get(url, function () { });
4

1 回答 1

1

考虑使用

@Html.ActionLink("PurchaseJobFinalize", "Job", new { JobID: JobID});

您现在使用的是对服务器的异步调用,它只会返回视图的呈现 html。

但是,您可以获取调用结果并将其放入 div,这样您就可以进入 SPA(单页应用程序)空间。

或者你可以试试这个

window.location = "/Job/PurchaseJobFinalize/" + JobID;

或者你可以试试

window.location.assign("/Job/PurchaseJobFinalize/" + JobID)
于 2013-09-04T08:09:38.800 回答