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
$.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 に答える
0

一般に、View にデータベースへのアクセスを許可したくはありません。この種のアクセスは、インフラストラクチャ レベルで許可する必要があります。私は一般的にこれをお勧めしませんが、少なくともコントローラーでデータベース呼び出しを行い、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 に答える