我正在开发一个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中执行存储过程吗?
答案 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():
}