
Comment générer des codes QR dans ASP.NET Core
Les codes QR sont devenus partie intégrante de la technologie moderne, offrant un moyen pratique de stocker et de transmettre des informations. En développement web, les générateurs de codes QR comme celui que nous allons implémenter avec IronQR dans ASP.NET Core offrent des fonctionnalités robustes pour la création dynamique de codes QR. Les générateurs de codes QR sont indispensables pour diverses applications telles que les systèmes de billetterie, l'authentification, la gestion des stocks, et bien plus encore. Cet article explore le processus de création de codes QR dans ASP.NET Core à l'aide d'IronQR, une bibliothèque puissante conçue à cet effet. ASP.NET Core, framework polyvalent pour la création d'applications web, offre des fonctionnalités robustes pour la génération de codes QR. Dans cet article, nous allons explorer le processus de création de codes QR dans ASP.NET Core à l'aide d'IronQR , une puissante bibliothèque de génération de codes QR d' Iron Software .
Comment générer des codes QR dans ASP.NET Core
- Créez un projet ASP.Net à l'aide de Visual Studio.
- Installez la bibliothèque IronQR à partir du Package Manager.
- Générer un code QR
- Générer un code QR avec mise en forme
Comprendre IronQR
IronQR est une bibliothèque de génération de codes QR haute performance pour les applications .NET. Elle fournit une API simple et intuitive pour générer des codes QR avec diverses options de personnalisation. IronQR prend en charge .NET Standard, ce qui le rend compatible avec un large éventail de plateformes, notamment ASP.NET Core. Avec IronQR, les développeurs peuvent générer sans effort des codes QR avec différents types de données, niveaux de correction d'erreurs, tailles et formats.
Caractéristiques principales
1. Lecture et création de codes QR
IronQR vous permet de générer et de lire facilement les codes QR. Que vous ayez besoin de créer des codes QR dynamiquement ou d'extraire des informations de codes existants, cette bibliothèque répond à tous vos besoins.
2. API conviviale
La bibliothèque fournit une API conviviale qui permet aux développeurs d'intégrer rapidement la fonctionnalité des codes-barres dans leurs projets .NET. Vous pouvez commencer à utiliser les codes QR en quelques minutes seulement.
3. Compatibilité
IronQR prend en charge différentes versions de .NET, notamment :
- C#, VB .NET, F#
- .NET Core (8, 7, 6, 5 et 3.1+)
- .NET Standard (2.0+)
- .NET Framework (4.6.2+)
Il couvre un large éventail de types de projets, notamment les applications web (Blazor et WebForms), mobiles (Xamarin et MAUI), de bureau (WPF et MAUI) et les applications console.
4. Modèle d'apprentissage automatique pour la détection des codes QR
IronQR utilise un modèle d'apprentissage automatique personnalisé et avancé pour détecter les codes QR. Cela garantit une reconnaissance de code précise et fiable. De plus, une option Slim Mode (non-ML) est disponible pour ceux qui préfèrent une approche légère.
5. Lecture des codes QR
Vous pouvez lire les codes QR à partir de différents formats d'image, notamment :
- Images (jpg, png, svg, bmp)
- Images multipages (gif, tif, tiff)
System.DrawingBitmaps- Images de IronDrawing (
AnyBitmap)
6. Écriture des codes QR
IronQR vous permet de créer des codes QR pour différents types de documents, tels que :
- Images (jpg, png, gif, tiff, bmp)
System.DrawingImages- Flux (
MemoryStream,byte[]) - PDF (Tampon sur PDF existant)
7. Style des codes QR
Personnalisez les codes QR en les redimensionnant, en ajustant les marges et les bordures, en changeant les couleurs et en ajoutant des logos.
8. Gestion et correction des erreurs
IronQR fournit des messages d'erreur détaillés et prend en charge des niveaux de correction d'erreurs QR personnalisés.
Forts de ces connaissances, commençons par l'application permettant de générer un code QR en ASP.NET Core.
Étape 1 : Créez un nouveau projet ASP.NET à l'aide de Visual Studio
Avant de nous plonger dans la génération de codes QR, commençons par configurer un nouveau projet ASP.NET Core. Voici les étapes à suivre pour lancer un nouveau projet :
Commencez par créer un nouveau projet dans Visual Studio et sélectionnez le modèle d'application Web ASP.Net Core.

Indiquez le nom et l'emplacement du projet.

Sélectionnez la version .NET requise.

Cliquez sur le bouton " Créer " pour générer le code de l'application à partir du modèle.

Étape 2 : Installez la bibliothèque IronQR à partir du Package Manager
Installez la bibliothèque IronQR à partir du gestionnaire de packages de Visual Studio comme indiqué ci-dessous.

IronQR peut également être installé à l'aide du gestionnaire de packages NuGet.

Étape 3 : Générer un code QR
Maintenant, créons une application de code QR.
Créer le modèle QRCode
using System.ComponentModel.DataAnnotations;
namespace GenerateQRCode.Models
{
public class QRCodeModel
{
[Display(Name = "Enter QR Code Text")]
public string QRCodeText { get; set; }
}
}Imports System.ComponentModel.DataAnnotations
Namespace GenerateQRCode.Models
Public Class QRCodeModel
<Display(Name := "Enter QR Code Text")>
Public Property QRCodeText() As String
End Class
End NamespaceCréer un contrôleur de codes QR
Pour ajouter une nouvelle manette, cliquez avec le bouton droit sur le dossier des manettes et indiquez un nom comme indiqué ci-dessous.

Sélectionnez le contrôleur vide.

Indiquez un nom.

Ensuite, intégrez le code suivant dans le contrôleur.
using GenerateQRCode.Models;
using IronSoftware.Drawing;
using IronQr;
using Microsoft.AspNetCore.Mvc;
namespace GenerateQRCode.Controllers
{
public class QrCodeController : Controller
{
private readonly IWebHostEnvironment _environment;
public QrCodeController(IWebHostEnvironment environment)
{
_environment = environment;
}
public IActionResult Index()
{
return View();
}
[HttpPost]
public IActionResult CreateQRCode(QRCodeModel generateQRCode)
{
try
{
string path = Path.Combine(_environment.WebRootPath, "GeneratedQRCode");
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
string filePath = Path.Combine(_environment.WebRootPath, "GeneratedQRCode/qrcode.png");
// Create a QR Code object
QrCode myQr = QrWriter.Write(generateQRCode.QRCodeText);
// Save QR Code as a Bitmap
AnyBitmap qrImage = myQr.Save();
// Save QR Code Bitmap as File
qrImage.SaveAs(filePath);
string fileName = Path.GetFileName(filePath); // qr code file
string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + "/GeneratedQRCode/" + fileName;
ViewBag.QrCodeUri = imageUrl;
}
catch (Exception)
{
throw;
}
return View();
}
}
}Imports GenerateQRCode.Models
Imports IronSoftware.Drawing
Imports IronQr
Imports Microsoft.AspNetCore.Mvc
Namespace GenerateQRCode.Controllers
Public Class QrCodeController
Inherits Controller
Private ReadOnly _environment As IWebHostEnvironment
Public Sub New(ByVal environment As IWebHostEnvironment)
_environment = environment
End Sub
Public Function Index() As IActionResult
Return View()
End Function
<HttpPost>
Public Function CreateQRCode(ByVal generateQRCode As QRCodeModel) As IActionResult
Try
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(_environment.WebRootPath, "GeneratedQRCode/qrcode.png")
' Create a QR Code object
Dim myQr As QrCode = QrWriter.Write(generateQRCode.QRCodeText)
' Save QR Code as a Bitmap
Dim qrImage As AnyBitmap = myQr.Save()
' Save QR Code Bitmap as File
qrImage.SaveAs(filePath)
Dim fileName As String = System.IO.Path.GetFileName(filePath) ' qr code file
Dim imageUrl As String = $"{Me.Request.Scheme}://{Me.Request.Host}{Me.Request.PathBase}" & "/GeneratedQRCode/" & fileName
ViewBag.QrCodeUri = imageUrl
Catch e1 As Exception
Throw
End Try
Return View()
End Function
End Class
End NamespaceExplication du code
Définition d'espace de noms et de classe
Le code commence par des instructions using, qui importent les espaces de noms nécessaires. L'espace de noms GenerateQRCode.Controllers contient la classe QrCodeController.
Constructeur de contrôleur
La classe QrCodeController possède un constructeur qui prend un paramètre IWebHostEnvironment. Ce paramètre est injecté par ASP.NET Core pour gérer les tâches liées à l'hébergement web.
Méthodes d'action
Index(): Cette méthode renvoie une vue (vraisemblablement une page HTML) lorsqu'elle est accédée. Cela ne semble pas être directement lié à la génération de codes QR.CreateQRCode(QRCodeModel generateQRCode): Cette méthode est au cœur de la logique de génération du code QR. Il reçoit un objetQRCodeModel(contenant vraisemblablement le texte du code QR) comme paramètre.
À l'intérieur de la méthode
- Crée un chemin pour enregistrer l'image du code QR généré.
- Crée un objet code QR en utilisant
QrWriter.Write(generateQRCode.QRCodeText). - Enregistre le code QR sous forme d'image bitmap.
- Construit une URL d'image à partir des détails de la requête web.
- Définit la propriété
ViewBag.QrCodeUriavec l'URL de l'image. - Si des exceptions surviennent au cours de ce processus, elles sont levées.
Génération de codes QR
La génération du code QR proprement dite a lieu dans la méthode CreateQRCode. L'appel QrWriter.Write(generateQRCode.QRCodeText) crée un objet code QR basé sur le texte fourni.
Enregistrement d'image
Le code QR généré est enregistré sous forme d'image bitmap en utilisant qrImage.SaveAs(filePath). Le chemin d'accès au fichier image est construit à partir du chemin racine du site web et du nom de fichier souhaité.
URL de l'image
Le imageUrl est construit en utilisant le schéma, l'hôte et le chemin de base de la requête Web. Cette URL indique l'emplacement où l'image du code QR généré peut être consultée. Globalement, ce contrôleur gère la génération du code QR, l'enregistrement de l'image et la fourniture d'une URL d'image pour une utilisation ultérieure.
Ajouter une vue au contrôleur
Pour ajouter une nouvelle vue, cliquez avec le bouton droit sur la méthode d'action CreateQRCode dans la classe QrCodeController.

Sélectionnez " Ajouter une vue ", puis " Vue Razor ". Cliquez sur le bouton " Ajouter ".

Ensuite, sélectionnez le modèle "Créer" et la classe Modèle générée précédemment.

Remplacez maintenant le code ci-dessous dans la vue
@model GenerateQRCode.Models.QRCodeModel
@{
ViewData["Title"] = "Generate QR Code";
}
<h1>Generate QR Code</h1>
<h4>QRCodeModel</h4>
<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">
<a href="#" class="btn btn-primary">Create QR Code</a>
</div>
<div class="form-group">
<img src="@ViewBag.QrCodeUri" class="img-thumbnail" alt="Your QR Code will appear here." />
</div>
</form>
</div>
</div>
<div>
<a asp-action="Index">Clear</a>
</div>
@section Scripts {
@{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}model ReadOnly Property () As GenerateQRCode.Models.QRCodeModel
ViewData("Title") = "Generate QR Code"
End Property
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <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"> <a href="#" class="btn btn-primary"> Create QR Code</a> </div> <div class="form-group"> <img src="@ViewBag.QrCodeUri" class="img-thumbnail" alt="Your QR Code will appear here." /> </div> </form> </div> </div> <div> <a asp-action="Index"> Clear</a> </div> @section Scripts
"Your QR Code will appear here." /> </div> </form> </div> </div> (Of div) <a asp-action="Index"> Clear</a> </div> section Scripts
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <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"> <a href="#" class="btn btn-primary"> Create QR Code</a> </div> <div class="form-group"> <img src="@ViewBag.QrCodeUri" class="img-thumbnail" alt="Your QR Code will appear here." /> </div> </form> </div> </div> <div> <a asp-action
"img-thumbnail" alt="Your QR Code will appear here." /> </div> </form> </div> </div> (Of div) <a asp-action
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <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"> <a href="#" class="btn btn-primary"> Create QR Code</a> </div> <div class="form-group"> <img src="@ViewBag.QrCodeUri" class="img-thumbnail" alt
"@ViewBag.QrCodeUri" class="img-thumbnail" alt
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <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"> <a href="#" class="btn btn-primary"> Create QR Code</a> </div> <div class="form-group"> <img src="@ViewBag.QrCodeUri" class
"form-group"> <img src="@ViewBag.QrCodeUri" class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <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"> <a href="#" class="btn btn-primary"> Create QR Code</a> </div> <div class="form-group"> <img src
"btn btn-primary"> Create QR Code</a> </div> <div class="form-group"> <img src
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <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"> <a href="#" class="btn btn-primary"> Create QR Code</a> </div> <div class
"#" class="btn btn-primary"> Create QR Code</a> </div> <div class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <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"> <a href="#" class
"form-group"> <a href="#" class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <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"> <a href
"text-danger"></span> </div> <div class="form-group"> <a href
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <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
"QRCodeText" class="text-danger"></span> </div> <div class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <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
"form-control" /> <span asp-validation-for="QRCodeText" class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <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="form-control" /> <span asp-validation-for
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <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
"control-label"></label> <input asp-for="QRCodeText" class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <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="control-label"></label> <input asp-for
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <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
"form-group"> <label asp-for="QRCodeText" class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <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
"text-danger"></div> <div class="form-group"> <label asp-for
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Private Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class
"ModelOnly" class="text-danger"></div> <div class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Private Private Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary="ModelOnly" class
"CreateQRCode"> <div asp-validation-summary="ModelOnly" class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Private Private Private Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary
"col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Private Private Private Private Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action
"row"> <div class="col-md-4"> <form asp-action
'INSTANT VB WARNING: Instant VB cannot determine whether both operands of this division are integer types - if they are then you should use the VB integer division operator:
Private Private Private Private Private Private Private Private Private Private Private Private Private Private Private Private Private Private Private Friend (Of h1) Generate QR Code</h1> (Of h4) QRCodeModel</h4> <hr /> <div Class="row"> <div class
@
If True Then
Await Html.RenderPartialAsync("_ValidationScriptsPartial")
End If
End ClassFaites de même pour la méthode d'action index, afin que l'application ne génère pas d'erreur lors du lancement de la requête POST.
Maintenant, dans Program.cs, modifiez le code suivant pour faire de la vue ci-dessus la route par défaut.
app.MapControllerRoute(
name: "default",
pattern: "{controller=QrCode}/{action=Index}"
);app.MapControllerRoute(name:= "default", pattern:= "{controller=QrCode}/{action=Index}")Cette action modifiera la route par défaut de HomeController à notre QrCodeController.
Maintenant, compilez et exécutez le projet.

Saisissez du texte dans la zone de texte et cliquez sur " Créer ". Cela créera un nouveau code QR comme indiqué ci-dessous.

Ajouter du style aux codes QR
QrStyleOptions sont utilisés pour styliser la génération du code QR.
[HttpPost]
public IActionResult CreateQRCode(QRCodeModel generateQRCode)
{
try
{
string path = Path.Combine(_environment.WebRootPath, "GeneratedQRCode");
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
string filePath = Path.Combine(_environment.WebRootPath, "GeneratedQRCode/qrcode.png");
// Create a QR Code object
QrCode qrCode = QrWriter.Write(generateQRCode.QRCodeText);
QrStyleOptions style = new QrStyleOptions
{
Dimensions = 300, // px size
Margins = 10, // px margins
Color = Color.YellowGreen // custom color
};
// Save QR Code with style options as a bitmap
AnyBitmap qrImage = qrCode.Save(style);
// Save QR Code Bitmap to File
qrImage.SaveAs(filePath);
string fileName = Path.GetFileName(filePath); // qr code file
string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + "/GeneratedQRCode/" + fileName;
ViewBag.QrCodeUri = imageUrl;
}
catch (Exception)
{
throw;
}
return View();
}<HttpPost>
Public Function CreateQRCode(ByVal generateQRCode As QRCodeModel) As IActionResult
Try
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(_environment.WebRootPath, "GeneratedQRCode/qrcode.png")
' Create a QR Code object
Dim qrCode As QrCode = QrWriter.Write(generateQRCode.QRCodeText)
Dim style As New QrStyleOptions With {
.Dimensions = 300,
.Margins = 10,
.Color = Color.YellowGreen
}
' Save QR Code with style options as a bitmap
Dim qrImage As AnyBitmap = qrCode.Save(style)
' Save QR Code Bitmap to File
qrImage.SaveAs(filePath)
Dim fileName As String = System.IO.Path.GetFileName(filePath) ' qr code file
Dim imageUrl As String = $"{Me.Request.Scheme}://{Me.Request.Host}{Me.Request.PathBase}" & "/GeneratedQRCode/" & fileName
ViewBag.QrCodeUri = imageUrl
Catch e1 As Exception
Throw
End Try
Return View()
End FunctionSortie

Licence (Essai disponible)
Pour les développeurs qui souhaitent tester IronQR, une licence d'essai est disponible ici . Cette clé de licence doit être placée dans le fichier appSettings.json. Cela permettra de supprimer le filigrane visible sur les images ci-dessus.
{
"IronQR.License.LicenseKey": "My key"
}
Conclusion
Dans cet article, nous avons exploré comment générer des codes QR dans ASP.NET Core en utilisant IronQR. En tirant parti de la puissance d'IronQR, les développeurs peuvent facilement intégrer la fonctionnalité de génération de codes QR dans leurs applications web. Que ce soit pour la billetterie, l'authentification ou le partage d'informations, les codes QR offrent une solution polyvalente pour transmettre efficacement des données. Avec IronQR, créer et personnaliser des codes QR dans ASP.NET Core n'a jamais été aussi simple. Commencez à intégrer la génération de codes QR dans vos projets ASP.NET Core et découvrez un monde de possibilités pour l'encodage et le partage dynamiques de données.

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes et créer des manuels bien structurés et visuellement attrayants.
Articles connexes


