MVC中javascript的数据库操作

时间:2013-02-11 12:58:57

标签: javascript asp.net-mvc asp.net-mvc-4

我正在开发一个mvc项目。我的视图中有一个按钮,它调用Javascript函数来打印数据。代码如下:

 <input type="button" class="btn_image" style="padding-top: 22px;" onclick="PrintDiv();"
        value="Print token" />

<head>
<script type="text/javascript">

    function PrintDiv() {
        var divToPrint = document.getElementById('printableArea');
        var popupWin = window.open('', '_blank', 'width=300,height=300');
        popupWin.document.open();
        popupWin.document.write('<html><body onload="window.print()">' + printableArea.innerHTML + '</html>');
        popupWin.document.close();
    }

</script>
</head>

现在我想更新已打印此记录的数据库中的记录。我怎样才能做到这一点?我可以在Javascript中执行存储过程吗?

3 个答案:

答案 0 :(得分:0)

通常,您永远不希望允许View访问数据库。应该在基础架构级别上授予这种访问权限。我一般不会推荐这个,但至少在你的Controller上进行数据库调用,然后将IEnumerable传递给表的View。

答案 1 :(得分:0)

您可以使用Jquery ajax从客户端调用控制器中的ActionResult。

function PrintDiv() {
        var divToPrint = document.getElementById('printableArea');
        var popupWin = window.open('', '_blank', 'width=300,height=300');
        popupWin.document.open();
        popupWin.document.write('<html><body onload="window.print()">' + printableArea.innerHTML + '</html>');
        popupWin.document.close();
        UpdateDb();
    }

function UpdateDb();
{    
    $.ajax({
               type: 'POST',
                url: "@Url.Content("/Contrller/ActionResult/")",    
                data : {                          
                                 parameter1:value1,
                                 parameter1: value2
                          },           
                dataType: datatype,
                success:function(result)
                {
                   //Any thing needed to be done on success                  
                }
       });
}

现在编写您的逻辑以更新Actionresult Controller中的Db。

希望它有所帮助。

答案 2 :(得分:0)

$.post("/Home/GetState/", { data : $("#printablearea").val() }, function (response) {

                         your code..
                });

并在控制器操作中

public actionresult GetState(string data)
{
    datatable item = entity.datatable.contains(data);
    entity.entry(item)..State = EntityState.Modified;
    entity.savechanges():
}