我试过这个帮手:
@(Html.Kendo().Barcode()
.Name("token")
.Encoding(BarcodeSymbology.EAN13)
.Checksum(true) //Nothing changes if true or false
.Value(Model.Ean13Code)
)
由于没有改变,我尝试使用Javascript:
$(function () {
var barcode = $('#token').data('kendoBarcode');
barcode.setOptions({
checksum: true
});
});
仍然没有校验和。
我还尝试用校验和设置值13位,但发生了异常,它应该只有12位数。
我缺少什么?
答案 0 :(得分:1)
这是Barcode的MVC包装中的一个错误。 JavaScript代码中checksum
属性的默认值为false
。但是,C#代码表示默认值为true
。因此,当您设置.Checksum(true)
时,没有任何内容序列化到客户端,因此假设为false
。
可能的解决方法是在窗口小部件实例初始化之前更改客户端原型:
<script>
$(function () {
kendo.dataviz.ui.Barcode.fn.options.checksum = true;
});
</script>
@(Html.Kendo().Barcode()
.Name("token")
.Encoding(BarcodeSymbology.EAN13)
.Checksum(true)
.Value("123456789012")
)
在服务器端声明中仍然需要.Checksum(true)
,否则false
将被序列化,这将覆盖默认的客户端值,无论是什么。