
En este articulo veremos como generar códigos QR con ASP.NET.
Paso 1.
Primero crea un nuevo proyecto vacío MVC como se muestra en las siguientes imágenes:
Paso 2.
Agregas la librería QRCoder está la encuentras en los paquetes NuGet
Paso 3
Creas un nuevo controlador y su vista correspondiente, posteriormente debes copiar y pegar el html siguiente.
@{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>QR Generate</title> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script> </head> <body> <form id="form1" runat="server" action="~/Default" method="post"> <div class="container"> <h2>How to Generate QR Code in ASP.NET MVC</h2> <div class="row"> <div class="col-md-9"> <div class="form-group"> <label>Enter Something</label> <div class="input-group"> <input type="text" name="txtQRCode" class="form-control" value="@ViewBag.txtQRCode" /> <div class="input-group-prepend"> <button type="submit">Generte QR</button> </div> </div> </div> </div> </div> @if (ViewBag.imageBytes != null) { <img src="@String.Format("data:image/png;base64,{0}", Convert.ToBase64String(ViewBag.imageBytes))" /> } </div> </form> </body> </html>
Paso 4.
Copia y pega el código de servidor y listo ejecuta el ejemplo.
using QRCoder; using System; using System.Collections.Generic; using System.Drawing; using System.IO; using System.Linq; using System.Web; using System.Web.Mvc; namespace QR.Controllers { public class DefaultController : Controller { // GET: Default public ActionResult Index() { return View(); } [HttpPost] public ActionResult Index(string txtQRCode) { ViewBag.txtQRCode = txtQRCode; QRCodeGenerator qrGenerator = new QRCodeGenerator(); QRCodeData qrCodeData = qrGenerator.CreateQrCode(txtQRCode, QRCodeGenerator.ECCLevel.Q); QRCode qrCode = new QRCode(qrCodeData); //System.Web.UI.WebControls.Image imgBarCode = new System.Web.UI.WebControls.Image(); //imgBarCode.Height = 150; //imgBarCode.Width = 150; using (Bitmap bitMap = qrCode.GetGraphic(20)) { using (MemoryStream ms = new MemoryStream()) { bitMap.Save(ms, System.Drawing.Imaging.ImageFormat.Png); ViewBag.imageBytes = ms.ToArray(); //imgBarCode.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(byteImage); } } return View(); } } }