VERWENDUNG VON IRONQR

Wie man QR-Codes in ASP .NET Core generiert

Veröffentlicht 6. Juni 2024
Teilen Sie:

Einführung

QR-Codes sind zu einem festen Bestandteil der modernen Technologie geworden und bieten eine bequeme Möglichkeit, Informationen zu speichern und zu übertragen. In der Webentwicklung bieten QR-Code-Generatoren wie der, den wir mit IronQR in ASP.NET Core implementieren werden, robuste Funktionen für die dynamische QR-Code-Erstellung. QR-Code-Generatoren sind von unschätzbarem Wert für verschiedene Anwendungen wie Ticketingsysteme, Authentifizierung, Bestandsverwaltung und vieles mehr. Dieser Artikel befasst sich mit der Erstellung von QR-Codes in ASP.NET Core mit IronQR, einer leistungsstarken Bibliothek, die für diesen Zweck entwickelt wurde. ASP.NET Core, ein vielseitiges Framework für die Erstellung von Webanwendungen, bietet robuste Funktionen für die Erzeugung von QR-Codes. In diesem Artikel befassen wir uns mit der Erstellung von QR-Codes in ASP.NET Core mitIronQReine leistungsfähige Bibliothek zur Erzeugung von QR-Codes ausIron Software.

Wie man QR-Codes in ASP.NET Core generiert

  1. ASP.Net-Projekt mit Visual Studio erstellen

  2. Installieren SieIronQR bibliothek aus dem Paketmanager

  3. QR-Code generieren

  4. QR-Code mit Formatierung generieren

IronQR verstehen

IronQR ist eine leistungsstarke Bibliothek zur Erzeugung von QR-Codes für .NET-Anwendungen. Es bietet eine einfache und intuitive API für die Erstellung von QR-Codes mit verschiedenen Anpassungsoptionen. IronQR unterstützt den .NET-Standard und ist damit mit einer Vielzahl von Plattformen, einschließlich ASP.NET Core, kompatibel. Mit IronQR können Entwickler mühelos QR-Codes mit verschiedenen Datentypen, Fehlerkorrekturstufen, Größen und Formaten erzeugen.

Wesentliche Merkmale

1. QR-Codes lesen und erstellen

Mit IronQR können Sie ganz einfach QR-Codes erzeugen und lesen. Egal, ob Sie QR-Codes dynamisch erstellen oder Informationen aus vorhandenen Codes extrahieren möchten, diese Bibliothek bietet Ihnen alles, was Sie brauchen.

2. Benutzerfreundliches API

Die Bibliothek bietet eine benutzerfreundliche API, die es Entwicklern ermöglicht, Barcode-Funktionen schnell in ihre .NET-Projekte zu integrieren. In nur wenigen Minuten können Sie mit QR-Codes arbeiten.

3. Kompatibilität

IronQR unterstützt verschiedene .NET-Versionen, darunter:

  1. C#, VB.NET, F#

  2. .NET Core(8, 7, 6, 5 und 3.1+)

  3. .NET-Standard(2.0+)

  4. .NET-Framework(4.6.2+)

    Es deckt eine breite Palette von Projekttypen ab, darunter Web(Blazor und WebForms)mobil(Xamarin & MAUI)schreibtisch(WPF UND MAUI)und Konsolenanwendungen.

4. Maschinelles Lernmodell für QR-Erkennung

IronQR verwendet ein fortschrittliches benutzerdefiniertes Modell für maschinelles Lernen, um QR-Codes zu erkennen. Dies gewährleistet eine genaue und zuverlässige Codeerkennung. Außerdem gibt es eine Option für den Slim-Modus(nicht-ML) für diejenigen, die ein leichtes Konzept bevorzugen.

5. QR-Codes lesen

Sie können QR-Codes aus verschiedenen Bildformaten lesen, darunter:

  1. Bilder(jpg, png, svg, bmp)

  2. Mehrseitige Bilder(gif, tif, tiff)

  3. system.Drawing"-Bitmaps

  4. IronDrawing Bilder(anyBitmap)

6. QR-Codes schreiben

IronQR ermöglicht es Ihnen, QR-Codes für verschiedene Dokumenttypen zu schreiben, z. B:

  1. Bilder(jpg, png, gif, tiff, bmp)

  2. system.Drawing"-Bilder

  3. Ströme(memoryStream", "Byte[]`)

  4. PDF(Stempel auf bestehendes PDF)

7. Gestalten von QR-Codes

Anpassen von QR-Codes durch Größenanpassung, Anpassung von Rändern und Umrandungen, Neueinfärbung, Hinzufügen von Logos

8. Fehlerbehandlung und -korrektur

IronQR liefert detaillierte Fehlermeldungen und unterstützt benutzerdefinierte QR-Fehlerkorrekturstufen.

Mit diesem Wissen, lassen Sie uns mit der Anwendung beginnen, um QR-Code in ASP.NET Core zu erzeugen.

Schritt 1: Erstellen Sie ein neues ASP.NET-Projekt mit Visual Studio

Bevor wir uns mit der QR-Code-Generierung beschäftigen, sollten wir ein neues ASP.NET Core-Projekt einrichten. Nachfolgend finden Sie die Schritte zur Initiierung eines neuen Projekts:

Erstellen Sie zunächst ein neues Projekt in Visual Studio und wählen Sie die Anwendungsvorlage ASP.Net Core Web App

Wie man QR-Codes in ASP .NET Core generiert: Abbildung 1 - Wählen Sie die ASP.NET CORE Webanwendungsvorlage

Geben Sie Projektname und Standort an

Wie man QR-Codes in ASP .NET Core generiert: Abbildung 2 - Benennen Sie das Projekt und den Speicherort, an dem Sie es speichern möchten

Wählen Sie die gewünschte .NET-Version aus.

Wie man QR-Codes in ASP .NET Core generiert: Abbildung 3 - Wählen Sie die richtige .NET-Version aus.

Klicken Sie auf die Schaltfläche "Erstellen", um den Anwendungscode aus der Vorlage zu generieren

Wie man QR-Codes in ASP .NET Core generiert: Abbildung 4 - Klicken Sie auf die Schaltfläche "Erstellen", um den Vorlagencode zu generieren

Schritt 2: Installieren Sie die IronQR-Bibliothek über den Paketmanager

Installieren SieIronQR bibliothek aus dem Visual Studio Package Manager wie unten gezeigt.

Wie man QR-Codes in ASP .NET Core generiert: Abbildung 5 - Suchen Sie IronOCR mit dem Visual Studio Package Manager und installieren Sie es

IronQR kann auch mit dem NuGet Package Manager installiert werden.

Wie man QR-Codes in ASP .NET Core generiert: Abbildung 6 - Suche nach IronOCR mit NuGet Package Manager

Schritt 3: Erzeugen eines QR-Codes

Nun wollen wir eine QR-Code-App erstellen.

QRCode"-Modell erstellen

using System.ComponentModel.DataAnnotations;
namespace GenerateQRCode.Models
{
    public class QRCodeModel
    {
        [Display(Name = "Enter QR Code Text")]
        public string QRCodeText
        {
            get;
            set;
        }
    }
}
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 Namespace
VB   C#

Einen QR-Code-Controller erstellen

Um eine neue Steuerung hinzuzufügen, klicken Sie mit der rechten Maustaste auf den Steuerungsordner und geben Sie einen Namen ein, wie unten gezeigt.

Wie man QR-Codes in ASP .NET Core generiert: Abbildung 7 - Fügen Sie einen neuen Controller hinzu, indem Sie auf den Ordner klicken und ihm einen Namen geben

Wählen Sie den leeren Controller.

Wie man QR-Codes in ASP .NET Core generiert: Abbildung 8 - Klicken Sie in der Eingabeaufforderung auf Empty Controller

Geben Sie einen Namen an.

Wie man QR-Codes in ASP .NET Core generiert: Abbildung 9 - Benennen des Controllers

Als nächstes integrieren Sie den folgenden Code in den Controller.

using GenerateQRCode.Models;
using IronQr;
using IronSoftware.Drawing;
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();
        }
    }
}
using GenerateQRCode.Models;
using IronQr;
using IronSoftware.Drawing;
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 IronQr
Imports IronSoftware.Drawing
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 Namespace
VB   C#

Code Erläuterung

Namespace und Klassendefinition

Der Code beginnt mit using-Anweisungen, die die erforderlichen Namespaces importieren. Der Namespace GenerateQRCode.Controllers enthält die Klasse QrCodeController.

Controller-Konstruktor

Die Klasse QrCodeController hat einen Konstruktor, der einen Parameter IWebHostEnvironment benötigt. Dieser Parameter wird von ASP.NET Core für die Bearbeitung von Aufgaben im Zusammenhang mit dem Webhosting injiziert.

Aktionsmethoden

Index(): Diese Methode gibt eine Ansicht zurück(vermutlich eine HTML-Seite) beim Zugriff. Es scheint nicht direkt mit der QR-Code-Generierung zusammenzuhängen. CreateQRCode(QRCodeModel generateQRCode): Diese Methode ist das Herzstück der QR-Code-Generierungslogik. Es empfängt ein QRCodeModel-Objekt(vermutlich mit dem Text des QR-Codes) als Parameter.

Innerhalb der Methode

Er erstellt einen Pfad zum Speichern des erzeugten QR-Code-Bildes. Erzeugt ein QR-Code-Objekt mit QrWriter.Write(generateQRCode.QRCodeText). Speichert den QR-Code als Bitmap-Bild. Konstruiert eine Bild-URL auf der Grundlage der Webanforderungsdetails. Setzt die Eigenschaft "ViewBag.QrCodeUri" mit der Bild-URL. Treten während dieses Vorgangs Ausnahmen auf, so werden diese ausgelöst.

QR-Code-Erzeugung

Die eigentliche QR-Code-Generierung erfolgt in der Methode CreateQRCode. Die Funktion `QrWriter.Write(generateQRCode.QRCodeText)der Aufruf erstellt ein QR-Code-Objekt auf der Grundlage des angegebenen Textes.

Bildspeicherung

Der generierte QR-Code wird mit qrImage.SaveAs' als Bitmap-Bild gespeichert(dateipfad). Der Pfad der Bilddatei wird auf der Grundlage des Web-Root-Pfads und des gewünschten Dateinamens erstellt.

Bild-URL

Die "imageUrl" wird unter Verwendung des Schemas, des Hosts und der Pfadbasis der Webanforderung erstellt. Diese URL verweist auf den Ort, an dem das generierte QR-Code-Bild abgerufen werden kann. Insgesamt kümmert sich dieser Controller um die Erzeugung des QR-Codes, das Speichern des Bildes und die Bereitstellung einer Bild-URL für die weitere Verwendung

Ansicht zum Controller hinzufügen

Um eine neue Ansicht hinzuzufügen, klicken Sie mit der rechten Maustaste auf die Aktionsmethode CreateQRCode in der Klasse QrCodeController.

Wie man QR-Codes in ASP .NET Core generiert: Abbildung 10 - Hinzufügen einer neuen Ansicht in der Klasse `QrCodeController`

Wählen Sie "Ansicht hinzufügen" und dann "Razor-Ansicht". Klicken Sie auf die Schaltfläche "Hinzufügen".

Wie man QR-Codes in ASP .NET Core generiert: Abbildung 11 - Wählen Sie die Option Ansicht hinzufügen, dann Razor-Ansicht, dann Hinzufügen

Wählen Sie dann die Vorlage "Erstellen" und die zuvor erstellte Modellklasse.

Wie man QR-Codes in ASP .NET Core generiert: Abbildung 12 - Wählen Sie die zuvor erstellte Vorlage Create aus

Ersetzen Sie nun den folgenden Code in der Ansicht

@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>
                <span asp-validation-for="QRCodeText" class="text-danger"></span>
            </div>
            <div class="form-group">
            </div>
            <div class="form-group">
                <img src="@ViewBag.QrCodeUri" class="img-thumbnail" />
            </div>
        </form>
    </div>
</div>
<div>
    <a asp-action="Index">Clear</a>
</div>
@section Scripts {
    @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}
@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>
                <span asp-validation-for="QRCodeText" class="text-danger"></span>
            </div>
            <div class="form-group">
            </div>
            <div class="form-group">
                <img src="@ViewBag.QrCodeUri" class="img-thumbnail" />
            </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> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class="form-group"> </div> <div class="form-group"> <img src="@ViewBag.QrCodeUri" class="img-thumbnail" /> </div> </form> </div> </div> <div> <a asp-action="Index"> Clear</a> </div> @section Scripts
"img-thumbnail" /> </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> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class="form-group"> </div> <div class="form-group"> <img src="@ViewBag.QrCodeUri" class="img-thumbnail" /> </div> </form> </div> </div> <div> <a asp-action
"@ViewBag.QrCodeUri" class="img-thumbnail" /> </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> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class="form-group"> </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 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> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class="form-group"> </div> <div class="form-group"> <img src
"form-group"> </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 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> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class="form-group"> </div> <div class
"text-danger"></span> </div> <div class="form-group"> </div> <div class
'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> <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 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> <span asp-validation-for="QRCodeText" class
"control-label"></label> <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 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> <span asp-validation-for
"QRCodeText" class="control-label"></label> <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 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 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 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 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 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 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 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 Class
VB   C#

Führen Sie dasselbe auch für die Index-Aktionsmethode durch, damit beim Start der Anwendung kein Fehler für die POST-Anforderung ausgegeben wird.

Ändern Sie nun in der Datei program.cs den folgenden Code, um die obige Ansicht als Standardroute festzulegen.

app.MapControllerRoute(
    name: "default",
    pattern: "{controller=QrCode}/{action=Index}"
);
app.MapControllerRoute(
    name: "default",
    pattern: "{controller=QrCode}/{action=Index}"
);
app.MapControllerRoute(name:= "default", pattern:= "{controller=QrCode}/{action=Index}")
VB   C#

Diese Aktion ändert die Standardroute von "HomeController" zu unserem "QRCode"-Controller.

Kompilieren Sie nun das Projekt und führen Sie es aus.

Wie man QR-Codes in ASP .NET Core generiert: Abbildung 13 - Beispiel-Homepage aus dem Projekt

Geben Sie einen beliebigen Text in das Textfeld ein und klicken Sie auf "Erstellen" Dadurch wird ein neuer QR-Code wie unten gezeigt erstellt.

Wie man QR-Codes in ASP .NET Core generiert: Abbildung 14 - Geben Sie einen beliebigen Text ein und klicken Sie auf Erstellen, um einen neuen QR-Code unter Verwendung von IronOCR zu erstellen

Stil zum QR-Code hinzufügen

qrStyleOptions" werden zur Gestaltung der QR-Code-Generierung verwendet.

[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 obj
        QrCode qrCode = QrWriter.Write(generateQRCode.QRCodeText);
        QrStyleOptions style = new QrStyleOptions
        {
            Dimensions = 300, // px
            Margins = 10, // px
            Color = Color.YellowGreen
        };
        // Save QR Code as a any 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 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 obj
        QrCode qrCode = QrWriter.Write(generateQRCode.QRCodeText);
        QrStyleOptions style = new QrStyleOptions
        {
            Dimensions = 300, // px
            Margins = 10, // px
            Color = Color.YellowGreen
        };
        // Save QR Code as a any 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 obj
		Dim qrCode As QrCode = QrWriter.Write(generateQRCode.QRCodeText)
		Dim style As New QrStyleOptions With {
			.Dimensions = 300,
			.Margins = 10,
			.Color = Color.YellowGreen
		}
		' Save QR Code as a any 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 Function
VB   C#

Ausgabe

Wie man QR-Codes in ASP .NET Core generiert: Abbildung 15 - Programmgesteuertes Ändern der Farbe des QR-Codes

Lizenz (Testversion verfügbar)

Für Entwickler, die IronQR testen möchten, ist eine Testlizenz erhältlichhier. Dieser Lizenzschlüssel muss in der Datei appSettings.json platziert werden. Dadurch wird das in den obigen Bildern gezeigte Wasserzeichen entfernt. Dadurch wird das in den obigen Bildern gezeigte Wasserzeichen entfernt.

{
"IronQR.License.LicenseKey" : "My key"
}

Schlussfolgerung

In diesem Artikel haben wir untersucht, wie man mit IronQR QR-Codes in ASP.NET Core generiert. Durch die Nutzung der Leistungsfähigkeit von IronQR können Entwickler ganz einfach QR-Code-Generierungsfunktionen in ihre Webanwendungen integrieren. Ob für die Ausstellung von Fahrkarten, die Authentifizierung oder die Weitergabe von Informationen - QR-Codes bieten eine vielseitige Lösung für die effiziente Übertragung von Daten. Mit IronQR war das Erstellen und Anpassen von QR-Codes in ASP.NET Core noch nie so einfach. Integrieren Sie die QR-Code-Generierung in Ihre ASP.NET Core-Projekte und erschließen Sie sich eine Welt der Möglichkeiten für die dynamische Datencodierung und -freigabe.

< PREVIOUS
Wie benutzt man .NET MAUI für QR Code Scanner
NÄCHSTES >
Scannen von QR-Codes in ASP .NET

Sind Sie bereit, loszulegen? Version: 2024.12 gerade veröffentlicht

Gratis NuGet-Download Downloads insgesamt: 24,107 Lizenzen anzeigen >