5 Steps to Generate QR Codes in ASP.NET Core

QR codes have become an essential part of modern technology, and they are widely used in various fields, including marketing, logistics, and payment systems. In this blog post, we will explore how to generate QR codes in ASP.NET Core, a powerful framework for building web applications.

Step 1: Create a new ASP.NET Core project

The first step is to create a new ASP.NET Core project using Visual Studio or the .NET CLI. You can choose any template that suits your needs, such as MVC or Razor Pages.

Step 2: Install the QRCoder package

To generate QR codes, we will use the QRCoder package, a free, open-source library that supports various types of QR codes. To install the QRCoder package, you can use the NuGet Package Manager in Visual Studio or run the following command in the terminal:

dotnet add package QRCoder

Step 3: Create a QR code generator service

In ASP.NET Core, it’s best to separate your code into services to improve the organization and maintainability of your code. Let’s create a QR code generator service by adding a new class to our project:

using QRCoder;
using System.Drawing;

public interface IQRCodeGeneratorService
    Bitmap GenerateQRCode(string text);

public class QRCodeGeneratorService : IQRCodeGeneratorService
    public Bitmap GenerateQRCode(string text)
        var qrGenerator = new QRCodeGenerator();
        var qrCodeData = qrGenerator.CreateQrCode(text,   QRCodeGenerator.ECCLevel.Q);
        var qrCode = new QRCode(qrCodeData);
        return qrCode.GetGraphic(20);

In the above code, we created an interface “IQRCodeGeneratorService" and a class “QRCodeGeneratorService” that implements the interface. The GenerateQRCode method takes a string text and returns a Bitmap object that represents the QR code. We used the QRCoder library to create the QR code.

Step 4: Inject the QR code generator service

To use the QR code generator service in our controllers or views, we need to inject it into the dependency injection container of ASP.NET Core. In the Startup.cs file, add the following code to the ConfigureServices method:

services.AddScoped<IQRCodeGeneratorService, QRCodeGeneratorService>();

Step 5: Use the QR code generator service

Finally, let’s use the QR code generator service to create a QR code in our controller. In the following example, we created a QRCodeController with an action method Index that generates a QR code with the text “Hello World” and returns it as a file:

public class QRCodeController : Controller
    private readonly IQRCodeGeneratorService _qrCodeGeneratorService;

    public QRCodeController(IQRCodeGeneratorService qrCodeGeneratorService)
        _qrCodeGeneratorService = qrCodeGeneratorService;

    public IActionResult Index()
        var bitmap = _qrCodeGeneratorService.GenerateQRCode("Hello World");
        var stream = new MemoryStream();
        bitmap.Save(stream, ImageFormat.Png);
        stream.Position = 0;
        return File(stream, "image/png");

In the above code, we injected the IQRCodeGeneratorService into the controller’s constructor and used it to generate a QR code with the text “Hello World”. We then saved the QR code as a PNG image and returned it as a file.


In this blog post, we explored how to generate QR codes in ASP.NET Core using the QRCoder library. By following these 5 steps outlined in this post, you should be able to quickly and easily generate QR codes for a variety of data types in your ASP.NET Core applications.

Don’t forget to checkout: Generate Barcode in Asp.net Core with 4 Simple Steps

Also don’t forget to checkout this udemy course: .NET Core Microservices – The Complete Guide (.NET 6 MVC)

Share on facebook
Share on twitter
Share on linkedin

Related articles