在ASP.NET项目中如何使用C#生成二维码

2025-08-12 10:50

本文主要是介绍在ASP.NET项目中如何使用C#生成二维码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《在ASP.NET项目中如何使用C#生成二维码》二维码(QRCode)已广泛应用于网址分享,支付链接等场景,本文将以ASP.NET为示例,演示如何实现输入文本/URL,生成二维码,在线显示与下载的完整...

二维码(QR Code)已广泛应用于网址分享、支付链接、票务验证、身份登录等场景。在 ASP.NET 项目中,我们可以通过 C# 结合 Free Spire.Barcode for .NET 快速生成二维码,并将其直接显示在网页上,或制作下载链接。

本文将以 ASP.NET Core Web Apjsp(Razor Page) 为示例,演示如何实现 输入文本/URL → 生成二维码 → 在线显示与下载 的完整流程。

  • 创建输入与显示二维码的页面
  • 在后台生成二维码图片并返回 Base64 编码
  • 将二维码显示到页面并提供下载功能

本文示例使用 Free Spire.Barcode for .NET 生成二维码。你可以通过 NuGet 安装

dotnet add package FreeSpire.Barcode

创建前端页面(Index.cshtml)

在 Razor Page 中,我们需要一个输入框供用户填写二维码内容,以及一个提交按钮触发后台生成逻辑。生成的二维码将直接以图片的形式显示,并提供下载链接。

优化后的 HTML 代码示例:

@page
@model IndexModel
@{
    ViewData["Title"] = "QR Code Generator";
}

<h2>QR Code Generator</h2>

<form method="post">
    <label for="InputData">Enter text or URL:</label><br />
    <input type="text" id="InputData" name="InputData" required />
    <button type="submit">
        Generate QR Code
    </button>
</form>

@if (!string.IsNullOrEmpty(Model.QrCodeBase64))
{
    <div>
        <img src="data:image/png;base64,@Model.QrCodeBase64" alt="在ASP.NET项目中如何使用C#生成二维码" />
        <a href="data:image/png;base64,@Model.QrCodeBase64" rel="external nofollow"  download="qrcode.png" 
          >
            Download QR Code
        </a>
    </div>
}

前端实现要点:

  • 表单通过 POST 提交输入数据;
  • 二维码显示采用 data:image/png;base64 形式,无需保存到磁盘;
  • 提供下载按钮,直接保存二维码图片到本地。

后端二维码生成逻辑(Index.cshtml.cs)

后台逻辑的核心是利用 Spire.Barcode 提供的 BarcodeSettingsBarCodeGenerator 类生成二维码,并将生成的图片转换为 Base64 字符串返回给前端页面显示。

代码示例:

using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Spire.Barcode;

public class IndexModel : PageModel
{
    [BindProperty]
    public string InputData { get; set; }

    public string QrCodeBase64 { get; set; }

    public void OnPost()
    {
        if (!string.IsNullOrWhiteSpace(InputData))
        {
            QrCodeBase64 = GenerateQrCodeBase64(InputData);
        }
    }
    
    private string GenerateQrCodeBase64(string input)
    {
        var settings = new BarcodeSettings
        {
            Type = BarCodeType.QRCode,            // 指定二维码类型
            Data = input,                         // 编码数据
            Data2D = input,                       // 二维码需要设置 Data2D
            QRCodeDataMode = QRCodeDataMode.Byte, // 字节模式(支持多语言)
            QRCodeECL = QRCodeECL.M,              // 中等级纠错(可恢复 15% 数据)
            X = 3,                                // 模块大小
            ShowText = false,                     // 不显示默认条码文字
            ShowBottomText = true,                // 显示自定义底部文字
            BottomText = input                    // 底部显示输入内容
        };

        var generator = new BarCodeGenerator(settings);
      python  using var ms = new MemoryStream();
        var qrImage = generator.GenerateImage();
        qrImage.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
        return Convert.ToBase64String(ms.ToArray());
    }
}
js

关键技术说明:

  • QRCodeDataMode.Byte:支持中文、日文等多字节字符,避免乱码;
  • QRCodeECL.M:中等级纠错,适合大部分场景;
  • BottomText:可自定义底部文字,比如显示原始输入内容。

运行效果

当用户在输入框中填写内容并点击“Gjsenerate QR Code”按钮后,页面会立即生成二维码并显示,同时提供“Download QR Code”按钮,方便保存到本地。

总结

通过 ASP.NET Core Razor Page + Spire.Barcode for .NET,我们可以非常方python便地实现网页端输入数据并生成二维码、即时显示二维码图片,并直接提供图片下载功能。这种方式无需额外的临时文件存储,生成速度快,适合在登录验证、活动报名、文件分享等场景中使用。

如果你需要更复杂的二维码功能(如带 Logo、颜色定制、批量生成等),可以继续扩展 BarcodeSettings 的参数。

到此这篇关于在ASP.NET项目中如何使用C#生成二维码的文章就介绍到这了,更多相关C#生成二维码内容请搜索China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程China编程(www.chinasem.cn)!

这篇关于在ASP.NET项目中如何使用C#生成二维码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1155692

相关文章

一文解析C#中的StringSplitOptions枚举

《一文解析C#中的StringSplitOptions枚举》StringSplitOptions是C#中的一个枚举类型,用于控制string.Split()方法分割字符串时的行为,核心作用是处理分割后... 目录C#的StringSplitOptions枚举1.StringSplitOptions枚举的常用

Redis 基本数据类型和使用详解

《Redis基本数据类型和使用详解》String是Redis最基本的数据类型,一个键对应一个值,它的功能十分强大,可以存储字符串、整数、浮点数等多种数据格式,本文给大家介绍Redis基本数据类型和... 目录一、Redis 入门介绍二、Redis 的五大基本数据类型2.1 String 类型2.2 Hash

Redis中Hash从使用过程到原理说明

《Redis中Hash从使用过程到原理说明》RedisHash结构用于存储字段-值对,适合对象数据,支持HSET、HGET等命令,采用ziplist或hashtable编码,通过渐进式rehash优化... 目录一、开篇:Hash就像超市的货架二、Hash的基本使用1. 常用命令示例2. Java操作示例三

Linux创建服务使用systemctl管理详解

《Linux创建服务使用systemctl管理详解》文章指导在Linux中创建systemd服务,设置文件权限为所有者读写、其他只读,重新加载配置,启动服务并检查状态,确保服务正常运行,关键步骤包括权... 目录创建服务 /usr/lib/systemd/system/设置服务文件权限:所有者读写js,其他

Redis中Set结构使用过程与原理说明

《Redis中Set结构使用过程与原理说明》本文解析了RedisSet数据结构,涵盖其基本操作(如添加、查找)、集合运算(交并差)、底层实现(intset与hashtable自动切换机制)、典型应用场... 目录开篇:从购物车到Redis Set一、Redis Set的基本操作1.1 编程常用命令1.2 集

Redis中的有序集合zset从使用到原理分析

《Redis中的有序集合zset从使用到原理分析》Redis有序集合(zset)是字符串与分值的有序映射,通过跳跃表和哈希表结合实现高效有序性管理,适用于排行榜、延迟队列等场景,其时间复杂度低,内存占... 目录开篇:排行榜背后的秘密一、zset的基本使用1.1 常用命令1.2 Java客户端示例二、zse

mysql8.0.43使用InnoDB Cluster配置主从复制

《mysql8.0.43使用InnoDBCluster配置主从复制》本文主要介绍了mysql8.0.43使用InnoDBCluster配置主从复制,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录1、配置Hosts解析(所有服务器都要执行)2、安装mysql shell(所有服务器都要执行)3、

Vue3视频播放组件 vue3-video-play使用方式

《Vue3视频播放组件vue3-video-play使用方式》vue3-video-play是Vue3的视频播放组件,基于原生video标签开发,支持MP4和HLS流,提供全局/局部引入方式,可监听... 目录一、安装二、全局引入三、局部引入四、基本使用五、事件监听六、播放 HLS 流七、更多功能总结在 v

idea+spring boot创建项目的搭建全过程

《idea+springboot创建项目的搭建全过程》SpringBoot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目,:本文主要介绍idea+springb... 目录一.idea四种搭建方式1.Javaidea命名规范2JavaWebTomcat的安装一.明确tomcat

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装