Zum Fußzeileninhalt springen
IRONQR NUTZEN

Wie man QR-Codes in ASP.NET Core generiert

QR-Codes sind zu einem integralen Bestandteil der modernen Technologie geworden und bieten eine praktische 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, robuste Möglichkeiten für die dynamische Erstellung von QR-Codes. QR-Code-Generatoren sind von unschätzbarem Wert für verschiedene Anwendungen wie Ticketing-Systeme, Authentifizierung, Bestandsverwaltung und mehr. Dieser Artikel befasst sich mit dem Prozess der Erstellung von QR-Codes in ASP.NET Core mit IronQR, einer leistungsstarken Bibliothek, die für diesen Zweck entwickelt wurde. ASP.NET Core ist ein vielseitiges Framework zum Erstellen von Webanwendungen und bietet robuste Möglichkeiten zur Generierung von QR-Codes. In diesem Artikel befassen wir uns mit dem Prozess der Erstellung von QR-Codes in ASP.NET Core unter Verwendung von IronQR, einer leistungsstarken Bibliothek zur QR-Code-Erstellung von Iron Software.

Wie man QR-Codes in ASP.NET Core generiert

  1. Erstellen Sie ein ASP.Net-Projekt mit Visual Studio
  2. Installieren Sie die IronQR-Bibliothek über den Paket-Manager
  3. QR-Code generieren
  4. QR-Code mit Formatierung generieren

Verständnis von IronQR

IronQR ist eine leistungsstarke QR-Code-Generierungsbibliothek für .NET-Anwendungen. Es bietet eine einfache und intuitive API für die Erstellung von QR-Codes mit verschiedenen Anpassungsoptionen. IronQR unterstützt .NET Standard, wodurch es mit einer Vielzahl von Plattformen kompatibel ist, einschließlich ASP.NET Core. Mit IronQR können Entwickler problemlos QR-Codes mit unterschiedlichen Datentypen, Fehlerkorrekturstufen, Größen und Formaten erstellen.

Hauptmerkmale

1. Lesen und Erstellen von QR-Codes

IronQR ermöglicht es Ihnen, QR-Codes einfach zu generieren und zu lesen. Egal, ob Sie QR-Codes dynamisch erstellen oder Informationen aus bestehenden extrahieren möchten, diese Bibliothek bietet Ihnen Unterstützung.

2. Benutzerfreundliche API

Die Bibliothek bietet eine benutzerfreundliche API, mit der Entwickler Barcode-Funktionalität schnell in ihre .NET-Projekte integrieren können. Sie können in nur wenigen Minuten 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, einschließlich Web (Blazor & WebForms), Mobil (Xamarin & MAUI), Desktop (WPF & MAUI) und Konsolenanwendungen.

4. Machine Learning-Modell zur QR-Erkennung

IronQR erleichtert die Integration von QR-Codes für Entwickler. Dies gewährleistet eine genaue und zuverlässige Code-Erkennung. Zusätzlich gibt es eine Slim-Mode-Option (ohne ML) für diejenigen, die einen leichten Ansatz 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)

Beginnen Sie mit der Erstellung eines neuen Projekts in Visual Studio und wählen Sie die ASP.Net Core Web App-Vorlage.

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

  1. Bilder (jpg, png, gif, tiff, bmp)
  2. System.Drawing Bilder
  3. Streams (MemoryStream, byte[])
  4. PDF (Stempel auf bestehendem PDF)

7. QR-Codes gestalten

Anpassen von QR-Codes durch Vergrößern, Anpassen von Rändern und Rahmen, Neufärben, Hinzufügen von Logos

8. Fehlerbehandlung und Korrektur

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

Mit diesem Wissen lassen Sie uns mit der Anwendung zur Generierung von QR-Codes in ASP.NET Core beginnen.

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

Bevor wir mit der QR-Code-Generierung beginnen, lassen Sie uns ein neues ASP.NET Core-Projekt einrichten. Hier sind die Schritte, um ein neues Projekt zu initiieren:

Beginnen Sie indem Sie ein neues Projekt in Visual Studio erstellen und das ASP.Net Core Web App-Anwendungsvorlage auswählen

So erstellen Sie QR-Codes in ASP .NET Core: Abbildung 1 - Wählen Sie die ASP.NET CORE-Webanwendungsvorlage

Geben Sie Projektname und Speicherort an

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

Wählen Sie die erforderliche .NET-Version aus.

So erstellen Sie QR-Codes in ASP .NET Core: Abbildung 3 - Wählen Sie die korrekte .NET-Version aus.

Klicken Sie auf den Button "Erstellen", um den Anwendungscode aus der Vorlage zu generieren

So erstellen Sie QR-Codes in ASP .NET Core: Abbildung 4 - Klicken Sie auf die Schaltfläche

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

Installieren Sie die IronQR-Bibliothek über den Visual Studio Paket-Manager, wie unten gezeigt.

So erstellen Sie QR-Codes in ASP .NET Core: Abbildung 5 - Suchen Sie IronOCR mithilfe des Visual Studio-Paketmanagers und installieren Sie es

IronQR kann auch mit dem NuGet Paket-Manager installiert werden.

So erstellen Sie QR-Codes in ASP .NET Core: Abbildung 6 - Suchen Sie nach IronOCR unter Verwendung des NuGet-Paketmanagers

Schritt 3: Generieren Sie einen QR-Code

Lassen Sie uns nun eine QR-Code-App erstellen.

Erstellen Sie das QRCode Modell

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
$vbLabelText   $csharpLabel

Erstellen Sie einen QR-Code-Controller

Um einen neuen Controller hinzuzufügen, klicken Sie mit der rechten Maustaste auf den Controller-Ordner und geben Sie einen Namen wie unten gezeigt ein.

So erstellen Sie QR-Codes in ASP .NET Core: 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 aus.

So erstellen Sie QR-Codes in ASP .NET Core: Abbildung 8 - Klicken Sie im Prompt auf Leerer Controller

Geben Sie einen Namen an.

So erstellen Sie QR-Codes in ASP .NET Core: Abbildung 9 - Benennen Sie den Controller

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

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();
        }
    }
}
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 Namespace
$vbLabelText   $csharpLabel

Code Erklärung

Namespace- und Klassendefinition

Der Code beginnt mit Using-Anweisungen, die notwendige Namespaces importieren. Der GenerateQRCode.Controllers Namensraum enthält die QrCodeController Klasse.

Controller-Konstruktor

Die QrCodeController Klasse hat einen Konstruktor, der einen IWebHostEnvironment Parameter akzeptiert. Dieser Parameter wird von ASP.NET Core für die Verwaltung webhostingbezogener Aufgaben injiziert.

Aktionsmethoden

  • Index(): Diese Methode gibt eine Ansicht (vermutlich eine HTML-Seite) zurück, wenn darauf zugegriffen wird. Sie scheint nicht direkt mit der QR-Code-Generierung verbunden zu sein.
  • CreateQRCode(QRCodeModel generateQRCode): Diese Methode ist das Herzstück der QR-Code-Erstellungslogik. Sie erhält ein QRCodeModel Objekt (vermutlich mit dem QR-Code-Text) als Parameter.

Im Inneren der Methode

  • Konstruiert einen Pfad zum Speichern des generierten QR-Code-Bildes.
  • Erstellt ein QR-Code-Objekt mit QrWriter.Write(generateQRCode.QRCodeText).
  • Speichert den QR-Code als Bitmap-Bild.
  • Konstruiert eine Bild-URL basierend auf den Webanfrage-Details.
  • Setzt die ViewBag.QrCodeUri Eigenschaft mit der Bild-URL.
  • Wenn während dieses Prozesses irgendwelche Ausnahmen auftreten, werden sie geworfen.

QR-Code-Generierung

Die tatsächliche QR-Code-Erstellung erfolgt in der CreateQRCode Methode. Der QrWriter.Write(generateQRCode.QRCodeText) Aufruf erstellt ein QR-Code-Objekt basierend auf dem bereitgestellten Text.

Bilder speichern

Der generierte QR-Code wird mithilfe von qrImage.SaveAs(filePath) als Bitmap-Bild gespeichert. Der Bilddateipfad wird basierend auf dem Web-Root-Pfad und dem gewünschten Dateinamen konstruiert.

Bild-URL

Der imageUrl wird mit dem Schema, Host und Basis-Pfad der Webanfrage erstellt. Diese URL zeigt auf den Ort, an dem das generierte QR-Code-Bild abgerufen werden kann. Insgesamt bearbeitet dieser Controller die QR-Code-Generierung, speichert das Bild und stellt eine Bild-URL für die weitere Verwendung bereit.

Ansicht zum Controller hinzufügen

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

So erstellen Sie QR-Codes in ASP .NET Core: Abbildung 10 - Fügen Sie eine neue Ansicht in der `QrCodeController` Klasse hinzu

Wählen Sie "View hinzufügen", dann "Razor View" aus. Geben Sie einen Namen ein.

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

Wählen Sie dann die "Create"-Vorlage und die zuvor generierte Modellklasse aus.

So erstellen Sie QR-Codes in ASP .NET Core: Abbildung 12 - Wählen Sie die zuvor generierte `Create` Vorlage aus

Ersetzen Sie jetzt 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>
                <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 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 Class
$vbLabelText   $csharpLabel

Tun Sie dasselbe für die Index-Aktionsmethode, damit beim Start der App kein Fehler für die POST-Anfrage auftritt.

Ändern Sie nun im 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}")
$vbLabelText   $csharpLabel

Diese Aktion ändert die Standardroute von HomeController auf unsere QrCodeController.

Kompilieren und führen Sie das Projekt jetzt aus.

So erstellen Sie QR-Codes in ASP .NET Core: Abbildung 13 - Beispiel-Startseite aus dem Projekt

Geben Sie beliebigen Text in das Textfeld ein und klicken Sie auf 'Erstellen'. Dies wird einen neuen QR-Code erzeugen, wie unten gezeigt.

So erstellen Sie QR-Codes in ASP .NET Core: Abbildung 14 - Geben Sie einen beliebigen Text ein und klicken Sie auf Erstellen, um einen neuen QR-Code mit IronQR zu erstellen

QR-Code hinzufügen

QrStyleOptions werden verwendet, um die QR-Code-Erstellung zu stylen.

[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 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 Function
$vbLabelText   $csharpLabel

Ausgabe

So erstellen Sie QR-Codes in ASP .NET Core: Abbildung 15 - Die Farbe des QR-Codes programmatisch ändern

Lizenz (Testversion verfügbar)

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

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

Abschluss

In diesem Artikel haben wir untersucht, wie man QR-Codes in ASP.NET Core mit IronQR generiert. Durch das Nutzen der Leistungsfähigkeit von IronQR können Entwickler die QR-Code-Generierungsfunktionalität leicht in ihre Webanwendungen integrieren. Ob für Ticketing, Authentifizierung oder Informationsaustausch, QR-Codes bieten eine vielseitige Lösung für die effiziente Übermittlung von Daten. Mit IronQR war es noch nie so einfach, QR-Codes in ASP.NET Core zu erstellen und anzupassen. Beginnen Sie damit, die Generierung von QR-Codes in Ihre ASP.NET Core-Projekte zu integrieren, und entdecken Sie eine Welt voller Möglichkeiten für dynamische Datenkodierung und -austausch.

Häufig gestellte Fragen

Wie kann ich QR-Codes in ASP.NET Core generieren?

Um QR-Codes in ASP.NET Core zu generieren, können Sie die IronQR-Bibliothek verwenden. Erstellen Sie zunächst ein neues ASP.NET-Projekt in Visual Studio, installieren Sie IronQR über den Paket-Manager und implementieren Sie den Code zur Generierung von QR-Codes mit der benutzerfreundlichen API.

Welche Anpassungsoptionen gibt es für QR-Codes in ASP.NET Core?

IronQR bietet mehrere Anpassungsoptionen für QR-Codes in ASP.NET Core, einschließlich Größenänderung, Anpassung der Ränder, Farbänderung und Hinzufügen von Logos. Diese können über die QrStyleOptions Klasse verwaltet werden.

Wie funktioniert die Fehlerkorrektur bei der QR-Code-Generierung mit ASP.NET Core?

IronQR ermöglicht es Ihnen, die Fehlerkorrekturstufen bei der Generierung von QR-Codes in ASP.NET Core festzulegen. Dies stellt sicher, dass QR-Codes die gewünschte Fehlerresilienz aufweisen, was für ein zuverlässiges Scannen unerlässlich ist.

Kann ich QR-Codes aus verschiedenen Bildformaten in ASP.NET Core lesen?

Ja, mit IronQR in ASP.NET Core können Sie QR-Codes aus verschiedenen Bildformaten wie jpg, png, svg, bmp, gif, tif und tiff sowie System.Drawing Bitmaps und IronDrawing Images (AnyBitmap) lesen.

Ist es möglich, IronQR ohne eine Vollversion zu testen?

Ja, Sie können eine Testlizenz von IronQR von der Iron Software-Website erhalten. Die Testversion ermöglicht es Ihnen, die Bibliothek zu testen und Wasserzeichen von generierten QR-Codes während der Testphase zu entfernen, indem Sie die Lizenz in der Datei appSettings.json platzieren.

Welche Vorteile bieten QR-Codes in Webanwendungen?

QR-Codes sind für Webanwendungen vorteilhaft, da sie eine effiziente Datenspeicherung und -übertragung ermöglichen. Sie sind besonders nützlich in Anwendungen wie Ticketingsystemen, Authentifizierung und Bestandsverwaltung und bieten eine dynamische Möglichkeit, Informationen zu kodieren und zu teilen.

Wie verbessert maschinelles Lernen die QR-Code-Erkennung in ASP.NET Core?

IronQR nutzt ein fortschrittliches, benutzerdefiniertes maschinelles Lernmodell für die QR-Code-Erkennung, um eine hohe Genauigkeit und Zuverlässigkeit bei der Codierungserkennung zu gewährleisten. Für Benutzer, die eine leichtere Lösung bevorzugen, steht auch ein nicht-ML Slim Mode zur Verfügung.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen

Iron-Support-Team

Wir sind 24 Stunden am Tag, 5 Tage die Woche online.
Chat
E-Mail
Rufen Sie mich an