【问题标题】:Update Record by using ajax in Entity Framework MVC在实体框架 MVC 中使用 ajax 更新记录
【发布时间】:2018-12-16 10:40:24
【问题描述】:

我是初学者并尝试通过在 Entity Framework MVC 中使用 Ajax 调用 来更新我的记录。我成功获得idtoSearch,但在控制器端没有获得std.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");
                           });
                    });

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

【问题讨论】:

  • 您的 ajax 调用是否返回 200 OK 响应?检查您的浏览器开发工具。您收到任何警报了吗?
  • upid 变量在哪里定义或初始化?
  • @Shyju 我正在浏览器中获取 更新按钮upid 在更新按钮中被初始化
  • 那么什么不起作用?如果您看到“更新按钮”,这意味着您的 ajax 调用从您的操作方法调用中收到了 200 OK。您的预期行为是什么?
  • 您没有以正确的格式发送数据。如果要发送一个复杂对象和另一个对象,则需要data: JSON.stringify({ idtoSearch: upid, std: student }),并且需要添加contentType: 'application/json' 选项。但是您的属性名称似乎甚至不匹配 - 您的模型有一个属性 FirstName,但您发送了一个名为 upFirstName 的属性的值

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


【解决方案1】:

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

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

不是这个

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

希望对你也有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-21
    • 2018-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多