如何在按钮单击中更新数据库表?

时间:2012-12-11 06:16:02

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

我正在使用ADO.Net Connectivity处理MVC3,然后我用jQuery更新div

这是我的代码

控制器

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添加到表中,这里我想知道如何在以后保存数据库,这里任何事情我做错了或者有没有最佳的DB连接方法

1 个答案:

答案 0 :(得分:1)

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

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

至于数据库实践,我建议阅读与ASP.NET MVC相关的存储库模式和依赖注入。