首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >net mvc: Signaturepad toDataURL不生成任何行

net mvc: Signaturepad toDataURL不生成任何行
EN

Stack Overflow用户
提问于 2020-05-26 17:57:23
回答 1查看 49关注 0票数 0

使用Net MVC和Signaturepad,我从用户那里获取签名,并使用以下代码生成PNG:

代码语言:javascript
复制
                <canvas id="@("canvas" + flat.ID)" width="400" height="200" style="background-color: lightgrey;"></canvas>
                <script type="text/javascript">
                    var canvas = document.querySelector("@("#canvas" + flat.ID)");
                    var signaturePad = new SignaturePad(canvas, {
                        backgroundColor: 'rgba(211,211,211, 1)',
                        penColor: 'rgb(0, 0, 0)'
                    });
                </script>

我正在使用以下命令将签名存储在数据库中

代码语言:javascript
复制
<button class="btn btn-shadow btn-block btn-primary" onclick="saveSignature('@Url.Action("SaveSignature", "Home", new { Area = "AssemblyOrders" })', signaturePad.toDataURL(), '@flat.ID', '@ViewBag.AssemblyOrderID')">Speichern</button>

这除了设置数据库中的值之外,什么也不做。

在数据库中,我找到了生成的字符串:

代码语言:javascript
复制
data:image/png;base64,iVBORw...

我正在加载视图,如果视图模型包含该字符串,我会将其显示为图像:

代码语言:javascript
复制
<img src="@flat.Signature" style="width: 100%; height: 200px;"/>

这只显示来自signaturepad的浅灰色背景,而不显示手写签名。

问题出在哪里?

编辑:我也试着将它保存到桌面,但这个png也是浅灰色的,没有线条。

EN

回答 1

Stack Overflow用户

发布于 2020-05-27 15:23:49

问题是以下几行代码:

代码语言:javascript
复制
var signaturePad = new SignaturePad(canvas, {
    backgroundColor: 'rgba(211,211,211, 1)',
    penColor: 'rgb(0, 0, 0)'
});

由于有多个var signaturePad,正如您在<canvas id="@("canvas" + flat.ID)" ...中看到的那样,canvas多次存在。因此,总是使用最后一个变量。

我是这样解决的:

代码语言:javascript
复制
var pads = {};
...
pads["@("#canvas" + flat.ID)"] = new SignaturePad(canvas, {
    backgroundColor: 'rgba(211,211,211, 1)',
    penColor: 'rgb(0, 0, 0)'
});

代码语言:javascript
复制
onclick="saveSignature('@Url.Action("SaveSignature", "Home", new { Area = "AssemblyOrders" })', pads['@("#canvas" + flat.ID)'].toDataURL(), '@flat.ID', '@ViewBag.AssemblyOrderID')"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62019440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档