首页 > 解决方案 > 在实体框架 MVC 中使用 ajax 更新记录

问题描述

我是初学者并尝试通过在Entity Framework MVC中使用Ajax 调用来更新我的记录。我成功了,但没有在控制器端。正如您在我的代码中看到的那样idtoSearchstd.FirstNamestd.LastName

AjaxStudentController

[HttpPost]
    public ActionResult UpdateStudent(Student std, int idtoSearch) {
    using (StudentContext db = new StudentContext()) {
     Student updatestd = db.Student.Find(idtoSearch);
      if (!string.IsNullOrWhiteSpace(std.FirstName)) { updatestd.FirstName = std.FirstName; }
      if (!string.IsNullOrWhiteSpace(std.LastName)) { updatestd.LastName = std.LastName; }
        db.SaveChanges();
     }
       return Json(true, JsonRequestBehavior.AllowGet);
 }

在这里你可以看到ajax代码

<button class='upbtn' data-upid=" + stdid + ">Update</button>    
$(".upbtn").click(function () {
                        var student = {
                         "upFirstName" : $("#name").val(),
                         "upLastName" : $("#lname").val(),
                        }
                       $.ajax({
                           url: "/AjaxStudent/UpdateStudent",
                           method: "Post",
                           data: {
                               idtoSearch: upid,
                               std: student
                           }
                        }).done(function(){
                                alert("Update button");
                           }).
                           error(function () {
                               alert("Update Error");
                           });
                    });

我无法在浏览器上获得任何更新。任何人都请告诉我该怎么做。

标签: ajaxasp.net-mvcentity-framework-6entity-framework-4asp.net-ajax

解决方案


我已经解决了我的问题。我在错误的变量中更新我的数据,即upFirstName& upLastName。那是我的错误。我应该在同一个变量中更新我的数据,即FirstName& LastName。只需写下面的代码

var student = {
       "FirstName" : $("#name").val(),
       "LastName" : $("#lname").val(),
}

而不是这个

var student = {
        "upFirstName" : $("#name").val(),
        "upLastName" : $("#lname").val(),
  }

我希望它对你也有帮助。


推荐阅读