Przeglądaj źródła

[WebApplicationSample] 调整 QRCode

Roc 4 lat temu
rodzic
commit
45d838db25

+ 0 - 20
samples/WebApplicationSample/Controllers/HomeController.cs

@@ -1,8 +1,5 @@
 using System.Diagnostics;
-using System.Drawing;
-using System.Text;
 using Microsoft.AspNetCore.Mvc;
-using QRCoder;
 using WebApplicationSample.Models;
 
 namespace WebApplicationSample.Controllers
@@ -17,23 +14,6 @@ namespace WebApplicationSample.Controllers
             return View();
         }
 
-        /// <summary>
-        /// 生成二维码SVG
-        /// </summary>
-        /// <param name="data"></param>
-        /// <param name="size"></param>
-        [HttpGet]
-        public IActionResult QrCode(string data, int size = 168)
-        {
-            using (var qrGenerator = new QRCodeGenerator())
-            using (var qrCodeData = qrGenerator.CreateQrCode(data, QRCodeGenerator.ECCLevel.L))
-            using (var svgQrCode = new SvgQRCode(qrCodeData))
-            {
-                var svgText = svgQrCode.GetGraphic(new Size(size, size));
-                return File(Encoding.UTF8.GetBytes(svgText), "text/xml");
-            }
-        }
-
         public IActionResult Error()
         {
             return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });

+ 29 - 0
samples/WebApplicationSample/Controllers/QRCodeController.cs

@@ -0,0 +1,29 @@
+using System.Drawing;
+using System.Text;
+using Microsoft.AspNetCore.Mvc;
+using QRCoder;
+
+namespace WebApplicationSample.Controllers
+{
+    [Route("api/[controller]")]
+    [ApiController]
+    public class QRCodeController : ControllerBase
+    {
+        /// <summary>
+        /// 生成二维码SVG
+        /// </summary>
+        /// <param name="data">数据</param>
+        /// <param name="size">尺寸</param>
+        [HttpGet]
+        public IActionResult GetQRCode(string data, int size = 180)
+        {
+            using (var qrGenerator = new QRCodeGenerator())
+            using (var qrCodeData = qrGenerator.CreateQrCode(data, QRCodeGenerator.ECCLevel.L))
+            using (var svgQrCode = new SvgQRCode(qrCodeData))
+            {
+                var svgText = svgQrCode.GetGraphic(new Size(size, size), false, SvgQRCode.SizingMode.WidthHeightAttribute);
+                return File(Encoding.UTF8.GetBytes(svgText), "image/svg+xml");
+            }
+        }
+    }
+}

+ 1 - 1
samples/WebApplicationSample/Views/Alipay/PreCreate.cshtml

@@ -41,7 +41,7 @@
                 <label>QrCode:</label>
                 @if (!string.IsNullOrEmpty(ViewData["qrcode"] as string))
                 {
-                    <embed src="../Home/QrCode?size=168&data=@ViewData["qrcode"]" width="168" height="168" type="image/svg+xml" />
+                    <embed src="/api/qrcode?data=@ViewData["qrcode"]&size=180" class="shadow-sm p-3 mb-5 bg-white rounded mx-auto d-block" type="image/svg+xml" />
                 }
             </div>
             <div class="form-group">

+ 1 - 1
samples/WebApplicationSample/Views/WeChatPay/QrCodePay.cshtml

@@ -49,7 +49,7 @@
                 <label>QrCode:</label>
                 @if (!string.IsNullOrEmpty(ViewData["qrcode"] as string))
                 {
-                    <embed src="../Home/QrCode?size=168&data=@ViewData["qrcode"]" width="168" height="168" type="image/svg+xml" />
+                    <embed src="/api/qrcode?data=@ViewData["qrcode"]&size=180" class="shadow-sm p-3 mb-5 bg-white rounded mx-auto d-block" type="image/svg+xml" />
                 }
             </div>
             <div class="form-group">

+ 1 - 1
samples/WebApplicationSample/Views/WeChatPayV3/QrCodePay.cshtml

@@ -37,7 +37,7 @@
                 <label>QrCode:</label>
                 @if (!string.IsNullOrEmpty(ViewData["qrcode"] as string))
                 {
-                    <embed src="../Home/QrCode?size=168&data=@ViewData["qrcode"]" width="168" height="168" type="image/svg+xml" />
+                    <embed src="/api/qrcode?data=@ViewData["qrcode"]&size=180" class="shadow-sm p-3 mb-5 bg-white rounded mx-auto d-block" type="image/svg+xml" />
                 }
             </div>
             <div class="form-group">