如何在ASP.NET MVC中生成QR碼
在今日快速變化的數位環境中,生成QR碼已成為有效資訊共享的重要工具。 這些緊湊型的二維條碼能夠儲存包含URL、文字、聯繫資訊、產品詳情等大量資料,在現代通訊中扮演著關鍵角色。 將QR碼生成功能整合到您的ASP.NET MVC應用程式中,能讓使用者輕鬆生成QR碼,提升使用體驗、簡化互動和促進無縫的資訊交換。
如果您正在開發ASP.NET MVC應用程式並希望整合QR碼生成功能,IronBarcode是一個出色的程式庫,可以簡化這一過程。 在這篇文章中,我們將探討如何使用IronBarcode程式庫在ASP.NET MVC中生成QR碼。
IronBarcode
IronBarcode是.NET應用程式中一個功能強大且豐富的QR碼生成和識別程式庫。 使用IronBarcode,開發者可以輕鬆地將條碼和QR碼功能整合到他們的ASP.NET MVC專案中,包含生成QR碼的功能。 這個程式庫提供了一套綜合的工具和API,簡化了建立和自訂QR碼的過程,允許開發者根據他們的具體需求進行調整。
IronBarcode為各種條碼型別提供了廣泛支援,包括QR碼,使其成為需要QR碼生成功能的專案的理想選擇。 它為開發者提供了靈活性,可以指定要編碼的資料、控制生成的QR碼的大小和解析度,甚至可以新增顏色和徽標等視覺樣式元素。 該程式庫確保高質量的條碼生成,並精確控制QR碼外觀的每個方面。
除了生成QR碼之外,IronBarcode還包含強大的條碼讀取和解碼功能。 它支援掃描並提取QR碼中的資料,允許應用程式處理其中編碼的資訊。 這項功能在需要條碼掃描和資料提取的場景中非常有用,例如庫存管理、票務系統和移動應用程式。
現在,讓我們建立一個專案來在ASP.NET Core MVC Web應用程式中生成QR碼。
設定專案
在我們深入實施細節之前,先確保您的ASP.NET MVC專案已經設置好並準備就緒。 無論您是開始一個新專案還是使用現有專案,以下步驟將引導您將IronBarcode程式庫整合到您的應用程式中。 在我的情況下,我已經建立了一個新專案。
建立新專案的步驟如下:
- 開啟Microsoft Visual Studio 2022。
- 在啟動頁面,點擊"建立一個新專案"或從頂部選單中進入"文件" > "新建" > "專案"。
- 在"建立新專案"窗口中,您會看到不同的專案範本供選擇。 選擇專案範本"ASP.NET Core web app (Model-view-controller)",然後點擊"下一步"。
- 輸入專案名稱和位置。 選擇電腦上適合的位置儲存專案檔案。
- 選擇所需的框架版本。 Visual Studio通常會建議最新的穩定版本,如果需要,您也可以選擇不同的版本。 我選擇了.NET 7。
- 根據您的需要,自訂任何其他專案設定,如身份驗證選項或專案資料夾。
- 點擊"建立"來建立專案。
然後,Visual Studio將會生成專案檔案並打開方案瀏覽器,您可以在此查看專案結構並開始編寫程式碼。
如何在ASP.NET MVC中生成QR碼:圖1
現在,我們需要將IronBarcode程式庫安裝到我們的應用程式中。
安裝IronBarcode
首先,在Visual Studio中打開套件管理器控制台,並運行以下命令:
Install-Package IronBarCode
這條命令將會安裝IronBarcode程式庫並將必要的引用新增到您的專案中。
如何在ASP.NET MVC中生成QR碼:圖2
現在,讓我們編寫一些程式碼來建立QR碼。
建立 QRCodeModel
在Models資料夾中建立一個Model class,並編寫以下程式碼:
using System.ComponentModel.DataAnnotations;
public class QRCodeModel
{
[Display(Name = "Enter QR Code Text")]
public string QRCodeText { get; set; }
}
using System.ComponentModel.DataAnnotations;
public class QRCodeModel
{
[Display(Name = "Enter QR Code Text")]
public string QRCodeText { get; set; }
}
Imports System.ComponentModel.DataAnnotations
Public Class QRCodeModel
<Display(Name := "Enter QR Code Text")>
Public Property QRCodeText() As String
End Class
建立QR Code控制器
在您的ASP.NET MVC專案中,建立一個名為QrCodeController的新控制器。 為此,右鍵點擊專案結構中的Controllers資料夾,選擇"新增",然後選擇"控制器"。在可用選項中,選擇"MVC控制器 - 空白"。
在QrCodeController中編寫以下程式碼:
using Microsoft.AspNetCore.Mvc;
using IronBarCode;
using System.IO;
public class QrCodeController : Controller
{
private readonly IWebHostEnvironment _environment;
public QrCodeController(IWebHostEnvironment environment)
{
_environment = environment;
}
public IActionResult CreateQRCode()
{
return View();
}
[HttpPost]
public IActionResult CreateQRCode(QRCodeModel generateQRCode)
{
try
{
// Creating QR Code
GeneratedBarcode barcode = QRCodeWriter.CreateQrCode(generateQRCode.QRCodeText);
string path = Path.Combine(_environment.WebRootPath, "GeneratedQRCode");
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
string filePath = Path.Combine(path, "qrcode.png");
barcode.SaveAsPng(filePath);
string fileName = Path.GetFileName(filePath);
string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}/GeneratedQRCode/{fileName}";
ViewBag.QrCodeUri = imageUrl;
}
catch (Exception ex)
{
// Handle exceptions
// Log the exception details here for troubleshooting and debugging.
throw;
}
return View();
}
}
using Microsoft.AspNetCore.Mvc;
using IronBarCode;
using System.IO;
public class QrCodeController : Controller
{
private readonly IWebHostEnvironment _environment;
public QrCodeController(IWebHostEnvironment environment)
{
_environment = environment;
}
public IActionResult CreateQRCode()
{
return View();
}
[HttpPost]
public IActionResult CreateQRCode(QRCodeModel generateQRCode)
{
try
{
// Creating QR Code
GeneratedBarcode barcode = QRCodeWriter.CreateQrCode(generateQRCode.QRCodeText);
string path = Path.Combine(_environment.WebRootPath, "GeneratedQRCode");
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
string filePath = Path.Combine(path, "qrcode.png");
barcode.SaveAsPng(filePath);
string fileName = Path.GetFileName(filePath);
string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}/GeneratedQRCode/{fileName}";
ViewBag.QrCodeUri = imageUrl;
}
catch (Exception ex)
{
// Handle exceptions
// Log the exception details here for troubleshooting and debugging.
throw;
}
return View();
}
}
Imports Microsoft.AspNetCore.Mvc
Imports IronBarCode
Imports System.IO
Public Class QrCodeController
Inherits Controller
Private ReadOnly _environment As IWebHostEnvironment
Public Sub New(ByVal environment As IWebHostEnvironment)
_environment = environment
End Sub
Public Function CreateQRCode() As IActionResult
Return View()
End Function
<HttpPost>
Public Function CreateQRCode(ByVal generateQRCode As QRCodeModel) As IActionResult
Try
' Creating QR Code
Dim barcode As GeneratedBarcode = QRCodeWriter.CreateQrCode(generateQRCode.QRCodeText)
Dim path As String = System.IO.Path.Combine(_environment.WebRootPath, "GeneratedQRCode")
If Not Directory.Exists(path) Then
Directory.CreateDirectory(path)
End If
Dim filePath As String = System.IO.Path.Combine(path, "qrcode.png")
barcode.SaveAsPng(filePath)
Dim fileName As String = System.IO.Path.GetFileName(filePath)
Dim imageUrl As String = $"{Me.Request.Scheme}://{Me.Request.Host}{Me.Request.PathBase}/GeneratedQRCode/{fileName}"
ViewBag.QrCodeUri = imageUrl
Catch ex As Exception
' Handle exceptions
' Log the exception details here for troubleshooting and debugging.
Throw
End Try
Return View()
End Function
End Class
這段程式碼設置了一個能夠生成QR碼的控制器。 當CreateQRCode操作被呼叫時,它將帶來QR碼的文字,生成QR碼圖片,儲存它,並在視圖中顯示它的圖片URL。 詳細資訊如下:
- 控制器有一個構造函式,它接收一個
IWebHostEnvironment參數,用於存取Web託管環境。 CreateQRCode操作返回一個視圖。- 帶有
QRCodeModel參數。 - 在操作內,使用IronBarcode程式庫中的
QRCodeWriter類生成QR碼。 - 生成的QR碼被儲存為PNG格式的圖片檔案,位於Web根路徑中的一個名為
GeneratedQRCode的資料夾中。 - 如果
GeneratedQRCode資料夾不存在,則會建立該資料夾。 - 生成的QR碼圖片的文件路徑和URL。
- QR碼圖片的URL被儲存在
ViewBag.QrCodeUri屬性中,以便在視圖中使用。 - 處理過程中發生的任何異常都會被捕獲並記錄。
新增CreateQRCode視圖
現在,為了新增新視圖,右鍵點擊QrCodeController類。 選擇"新增視圖",然後選擇"Razor視圖",並點擊"新增"按鈕。
如何在ASP.NET MVC中生成QR碼:圖3
如下面所示會出現一個新窗口。
如何在ASP.NET MVC中生成QR碼:圖4
寫下視圖名稱,選擇模板"Create",並選擇我們新建立的模型類QRCodeModel。 點擊新增按鈕。 視圖將被建立。 使用下面的程式碼替換您的視圖。
@model QRCodeModel
@{
ViewData["Title"] = "CreateQRCode";
}
<h1>Create QRCode in ASP.NET MVC</h1>
<hr />
<div class="row">
<div class="col-md-4">
<form asp-action="CreateQRCode">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="QRCodeText" class="control-label"></label>
<input asp-for="QRCodeText" class="form-control" />
<span asp-validation-for="QRCodeText" class="text-danger"></span>
</div>
<div class="form-group">
<input type="submit" value="Create" class="btn btn-primary" />
</div>
<div class="form-group">
@if (ViewBag.QrCodeUri != null)
{
<img src="@ViewBag.QrCodeUri" class="img-thumbnail" alt="Generated QR Code" />
}
</div>
</form>
</div>
</div>
@section Scripts {
@{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); }
}
現在,讓我們轉到Program.cs類並更改預設控制器路由。
app.MapControllerRoute(
name: "default",
pattern: "{controller=QrCode}/{action=CreateQRCode}/{id?}"
);
app.MapControllerRoute(
name: "default",
pattern: "{controller=QrCode}/{action=CreateQRCode}/{id?}"
);
app.MapControllerRoute(name:= "default", pattern:= "{controller=QrCode}/{action=CreateQRCode}/{id?}")
這將把預設路由從QrCodeController。
現在,編譯並運行專案。
輸出
如何在ASP.NET MVC中生成QR碼:圖5
在文字框中輸入文字並點擊建立按鈕。 將建立一個QR碼並顯示在螢幕上,如下所示。
如何在ASP.NET MVC中生成QR碼:圖6 - QR碼在ASP.NET中
現在,讓我們通過新增註釋文字、QR碼值和改變QR碼顏色來為我們的條碼新增視覺樣式。
在QR碼中新增視覺樣式
在CreateQRCode動作方法中新增以下程式碼行。
barcode.AddAnnotationTextAboveBarcode("QR Code Generated by Iron PDF");
barcode.AddBarcodeValueTextBelowBarcode();
barcode.ChangeBackgroundColor(System.Drawing.Color.White);
barcode.ChangeBarCodeColor(System.Drawing.Color.MediumVioletRed);
barcode.AddAnnotationTextAboveBarcode("QR Code Generated by Iron PDF");
barcode.AddBarcodeValueTextBelowBarcode();
barcode.ChangeBackgroundColor(System.Drawing.Color.White);
barcode.ChangeBarCodeColor(System.Drawing.Color.MediumVioletRed);
barcode.AddAnnotationTextAboveBarcode("QR Code Generated by Iron PDF")
barcode.AddBarcodeValueTextBelowBarcode()
barcode.ChangeBackgroundColor(System.Drawing.Color.White)
barcode.ChangeBarCodeColor(System.Drawing.Color.MediumVioletRed)
現在,運行專案並生成QR碼。
如何在ASP.NET MVC中生成QR碼:圖7 - 生成QR碼
結論
在ASP.NET MVC中,整合IronBarcode非常簡單。 它提供了一個使用者友好的介面,使得與QR碼工作變得簡單。 通過利用IronBarcode,您可以增強您的應用程式,新增QR碼功能,使得使用者可以方便地共享和存取資訊。 IronBarcode是一個有價值的程式庫,簡化了在ASP.NET MVC中生成QR碼和讀取QR碼的過程。 它使開發者能夠建立利用QR碼強大功能進行高效資料共享和檢索的動態應用程式。
IronBarcode個人使用是免費的。 然而,出於商業目的,您需要購買其商業授權,其中附帶免費試用。 如果您獲得完整的Iron Suite,您可能會獲得顯著折扣。 Iron Suite是一個綜合的.NET軟體組件集合,旨在簡化開發任務並增強功能。 它提供五個強大的程式庫,包括IronBarcode、IronOCR、IronPDF、IronXL和Iron Webscraper,使開發者能夠簡單地處理條碼、光學字元識別、PDF處理、Excel和CSV檔案。 如果您選擇購買完整的Iron Suite,您將以兩個產品的價格獲得所有五個產品。
常見問題
我該如何在ASP.NET MVC中建立QR碼?
您可以通過在Visual Studio中設置項目、使用NuGet安裝IronBarcode程式庫Install-Package IronBarCode命令,然後使用IronBarcode的類在您的控制器中生成QR碼並在視圖中顯示它。
我可以在應用程式中自定義QR碼的外觀嗎?
可以,IronBarcode允許您通過調整大小、解析度、顏色,並新增徽標或註釋來自定義QR碼,使您的QR碼在視覺上更具吸引力和功能性。
我該如何在ASP.NET MVC視圖中顯示QR碼?
在使用IronBarcode生成QR碼後,您可以通過將圖像URL儲存在ViewBag中,並在您的Razor視圖中使用HTML <img>標籤來呈現QR碼圖像。
我可以使用.NET應用程式解碼QR碼嗎?
您可以使用IronBarcode在.NET應用程式中解碼QR碼,該程式提供掃描和從各種條碼格式中提取資料的功能,包括QR碼,非常適合用於庫存管理和票證驗證的應用程式。
IronBarcode程式庫有免費版本嗎?
IronBarcode的個人使用免費,允許開發者進行試驗和測試其功能。商業用途需要購買授權,可以獲得免費試用進行評估。
ASP.NET MVC項目中QR碼的一些應用是什麼?
ASP.NET MVC項目中的QR碼可用於快速存取網站、非接觸式支付、票務、庫存管理和移動應用整合,增強使用者交互和資訊傳播。
我該如何設置ASP.NET MVC項目以生成QR碼?
要設置ASP.NET MVC項目以生成QR碼,請使用Visual Studio建立帶有"模型-視圖-控制器"模板的新ASP.NET Core網頁應用,然後安裝IronBarcode程式庫開始在您的應用程式中生成QR碼。
Iron Suite中包含哪些程式庫?
Iron Suite包含多個.NET程式庫,如Iron Barcode、Iron OCR、Iron PDF、Iron XL和Iron Webscraper,每個程式庫都為條碼生成、光學字元識別、PDF操作、Excel處理和網頁抓取等任務提供專業功能。




