0

我正在做一个 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 中执行存储过程吗?

4

3 回答 3

0

一般来说,您永远不想让您的视图访问数据库。应该在基础设施级别授予这种访问权限。我通常不推荐这样做,但至少在控制器上进行数据库调用,然后将 IEnumerable 传递给表的视图。

于 2013-02-11T13:04:15.950 回答
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现在编写逻辑以更新 in中的 Db Controller

希望能帮助到你。

于 2013-02-11T13:08:06.950 回答
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():
}
于 2013-02-11T13:09:03.367 回答