asp.net-mvc-3 - 如何在按钮单击时更新数据库表?

标签 asp.net-mvc-3 jquery ado.net

我正在使用 ADO.Net 连接开发 MVC3,然后我使用 jQuery 更新 div

这是我的代码

Controller

public ActionResult GetData()
{
 return this.Json(_db.MYMOVIELISTs, JsonRequestBehavior.AllowGet);
}
public void Insert(string Id)
{
    var movieToInsert = new MYMOVIELIST { Title = "Ben", Director = "LEMe", ID = Id };
    // Save new movie to DB
    _db.AddToMYMOVIELISTs(movieToInsert);
    _db.SaveChanges();
}

客户端

function insertCallback(result) {
    readData();
}
function readData() {
    info.empty();
    $.ajax({
        type: "GET",
        url: 'Home/GetData',
        async: false,
        success: function (data) {
            for (var i = 0; i < data.length; i++) {
                var panel = $("<div class='panel' ></div>")
                var d = data[i];
                panel.append("ID: " + d.ID + "</br>");
                panel.append("Title: " + d.Title + "</br>");
                panel.append("Director: " + d.Director + "</br>");
                panel.append("<hr>");
                panel.data("info", d);
                panel.appendTo(info);
            }
        }
    });
}
$("#btnAdd").click(function () {
    $.post("Home/Insert", $("form").serialize(), insertCallback);
});

这工作正常,我的问题是我想在“保存”按钮单击中更新数据库表。我尝试在保存按钮单击中调用 _db.SaveChanges(); 而不是 Insert 它没有将 movieToInsert 添加到表中,在这里我想知道稍后如何保存数据库,这里做错了什么,或者是否有任何最佳的数据库连接方法

最佳答案

您正在序列化一个表单,因此最终您可能需要以下...它将您的序列化表单绑定(bind)到电影模型/实体:

[AcceptVerbs("POST")]
public void Insert(MovieEntity movie)

对于数据库实践,我建议阅读有关 ASP.NET MVC 的存储库模式和依赖项注入(inject)。

关于asp.net-mvc-3 - 如何在按钮单击时更新数据库表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13814692/

相关文章:

c# - MVC3 Controller 如何检索 HTTPPOST 参数?

Jquery super 盒子

javascript - jQuery 文件上传,只有单张图片并在上传前重命名

c# - 使用 dataAdapter.Fill() 将 Oracle Date 类型隐式转换为 String

c# - 使用 T-SQL 返回多个结果集

c# - SQL Server 的超时设置

asp.net-mvc-3 - 将字符串数组绑定(bind)到 MVC Razor 中的 DropDownList

asp.net-mvc-3 - 在@helper 声明中完成@Url Helper

javascript - 尝试在 ASP.NET MVC 中使用 ajax 上传文件

javascript - 使用 jQuery 从右向左滑动 DIV