简介:
二维码又称二维条码,常见的二维码为QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型。
步骤说明:
第一步要做的就是添加对 ThoughtWorks.QRCode 的引用。添加引用步骤:右键引用——》管理 NuGet 程序包——》浏览中搜索 QRCode ——》安装 ThoughtWorks.QRCode 程序包

下文为Controller控制器的后端代码,输入所需展示的内容并返回一个base64的字符串用于前端内容展示...

1 [HttpPost]
2 /// <summary>
3 /// 生成二维码
4 /// </summary>
5 /// <param name="qrCodeContent">要编码的内容</param>
6 /// <returns>返回二维码base64用于前端展示</returns>
7 public string QRCodeEncoderUtil(string qrCodeContent)
8 {
9 QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
10 qrCodeEncoder.QRCodeScale = 5;
11 qrCodeEncoder.QRCodeVersion = 0;
12 Bitmap img = qrCodeEncoder.Encode(qrCodeContent, Encoding.UTF8);//指定utf-8编码, 支持中文
13 string strbaser64 = "";
14 try
15 {
16 using (MemoryStream ms = new MemoryStream())
17 {
18 img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
19 byte[] arr = new byte[ms.Length];
20 ms.Position = 0;
21 ms.Read(arr, 0, (int)ms.Length);
22 ms.Close();
23 strbaser64 = Convert.ToBase64String(arr);
24 }
25 return strbaser64;
26 }
27 catch (Exception)
28 {
29 throw new Exception("Something wrong during convert!");
30 }
31 }
下文为Web视图的前端代码,因只是一个功能示例,未对样式进行调整...

1 <script src="~/Scripts/jquery-1.10.2.min.js"></script>
2
3 <div>
4 <div><span>生成内容:</span><input placeholder="请输入需要生成的文字描述..." id="EwmText" /></div>
5 <button onclick="GetErWeiMa()">
6 生成二维码
7 </button>
8 <img id="ErWeiMaImg" style="width:120px;height:120px">
9 </div>
10
11 <script>
12 function GetErWeiMa() {
13 $.post("/Index/QRCodeEncoderUtil?qrCodeContent=" + encodeURIComponent($("#EwmText").val()), function (data) {
14 if (data != "") {
15 $("#ErWeiMaImg").attr("src", "data:image/jgp;base64," + data)
16 }
17 else {
18 alert("生成失败");
19 }
20 })
21 }
22 </script>
如果您已经按照要求完成代码,则会出现下图效果,输入所需生成内容,前端会展示对应的二维码。注意input输入的内容需要encodeURIComponent,否则会截断特殊字符...

