最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在ASP.NET項(xiàng)目中如何使用C#生成二維碼

 更新時(shí)間:2025年08月12日 08:48:10   作者:Eiceblue  
二維碼(QR Code)已廣泛應(yīng)用于網(wǎng)址分享,支付鏈接等場(chǎng)景,本文將以 ASP.NET  為示例,演示如何實(shí)現(xiàn) 輸入文本/URL,生成二維碼,在線顯示與下載的完整流程

二維碼(QR Code)已廣泛應(yīng)用于網(wǎng)址分享、支付鏈接、票務(wù)驗(yàn)證、身份登錄等場(chǎng)景。在 ASP.NET 項(xiàng)目中,我們可以通過 C# 結(jié)合 Free Spire.Barcode for .NET 快速生成二維碼,并將其直接顯示在網(wǎng)頁(yè)上,或制作下載鏈接。

本文將以 ASP.NET Core Web App(Razor Page) 為示例,演示如何實(shí)現(xiàn) 輸入文本/URL → 生成二維碼 → 在線顯示與下載 的完整流程。

  • 創(chuàng)建輸入與顯示二維碼的頁(yè)面
  • 在后臺(tái)生成二維碼圖片并返回 Base64 編碼
  • 將二維碼顯示到頁(yè)面并提供下載功能

本文示例使用 Free Spire.Barcode for .NET 生成二維碼。你可以通過 NuGet 安裝:

dotnet add package FreeSpire.Barcode

創(chuàng)建前端頁(yè)面(Index.cshtml)

在 Razor Page 中,我們需要一個(gè)輸入框供用戶填寫二維碼內(nèi)容,以及一個(gè)提交按鈕觸發(fā)后臺(tái)生成邏輯。生成的二維碼將直接以圖片的形式顯示,并提供下載鏈接。

優(yōu)化后的 HTML 代碼示例:

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

<h2 style="font-family: Arial; color: #2c3e50;">QR Code Generator</h2>

<form method="post" style="margin-bottom:20px; background-color:#f9f9f9; padding:15px; border-radius:5px; width: fit-content;">
    <label for="InputData" style="font-weight:bold;">Enter text or URL:</label><br />
    <input type="text" id="InputData" name="InputData" style="width:300px; padding:5px; margin:5px 0;" required />
    <button type="submit" style="padding:5px 15px; background-color:#3498db; color:white; border:none; border-radius:3px; cursor:pointer;">
        Generate QR Code
    </button>
</form>

@if (!string.IsNullOrEmpty(Model.QrCodeBase64))
{
    <div style="margin-top:20px; border:1px solid #ddd; padding:10px; display:inline-block; border-radius:5px;">
        <img src="data:image/png;base64,@Model.QrCodeBase64" alt="QR Code" style="display:block; margin-bottom:10px;" />
        <a href="data:image/png;base64,@Model.QrCodeBase64" rel="external nofollow"  download="qrcode.png" 
           style="background-color:#2ecc71; color:white; padding:5px 10px; border-radius:3px; text-decoration:none;">
            Download QR Code
        </a>
    </div>
}

前端實(shí)現(xiàn)要點(diǎn):

  • 表單通過 POST 提交輸入數(shù)據(jù);
  • 二維碼顯示采用 data:image/png;base64 形式,無需保存到磁盤;
  • 提供下載按鈕,直接保存二維碼圖片到本地。

后端二維碼生成邏輯(Index.cshtml.cs)

后臺(tái)邏輯的核心是利用 Spire.Barcode 提供的 BarcodeSettingsBarCodeGenerator 類生成二維碼,并將生成的圖片轉(zhuǎn)換為 Base64 字符串返回給前端頁(yè)面顯示。

代碼示例:

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,                         // 編碼數(shù)據(jù)
            Data2D = input,                       // 二維碼需要設(shè)置 Data2D
            QRCodeDataMode = QRCodeDataMode.Byte, // 字節(jié)模式(支持多語(yǔ)言)
            QRCodeECL = QRCodeECL.M,              // 中等級(jí)糾錯(cuò)(可恢復(fù) 15% 數(shù)據(jù))
            X = 3,                                // 模塊大小
            ShowText = false,                     // 不顯示默認(rèn)條碼文字
            ShowBottomText = true,                // 顯示自定義底部文字
            BottomText = input                    // 底部顯示輸入內(nèi)容
        };

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

關(guān)鍵技術(shù)說明:

  • QRCodeDataMode.Byte:支持中文、日文等多字節(jié)字符,避免亂碼;
  • QRCodeECL.M:中等級(jí)糾錯(cuò),適合大部分場(chǎng)景;
  • BottomText:可自定義底部文字,比如顯示原始輸入內(nèi)容。

運(yùn)行效果

當(dāng)用戶在輸入框中填寫內(nèi)容并點(diǎn)擊“Generate QR Code”按鈕后,頁(yè)面會(huì)立即生成二維碼并顯示,同時(shí)提供“Download QR Code”按鈕,方便保存到本地。

總結(jié)

通過 ASP.NET Core Razor Page + Spire.Barcode for .NET,我們可以非常方便地實(shí)現(xiàn)網(wǎng)頁(yè)端輸入數(shù)據(jù)并生成二維碼、即時(shí)顯示二維碼圖片,并直接提供圖片下載功能。這種方式無需額外的臨時(shí)文件存儲(chǔ),生成速度快,適合在登錄驗(yàn)證、活動(dòng)報(bào)名、文件分享等場(chǎng)景中使用。

如果你需要更復(fù)雜的二維碼功能(如帶 Logo、顏色定制、批量生成等),可以繼續(xù)擴(kuò)展 BarcodeSettings 的參數(shù)。

到此這篇關(guān)于在ASP.NET項(xiàng)目中如何使用C#生成二維碼的文章就介紹到這了,更多相關(guān)C#生成二維碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺析WPF中Popup彈出層的使用

    淺析WPF中Popup彈出層的使用

    這篇文章將通過一個(gè)簡(jiǎn)單的小例子,為大家詳細(xì)介紹一下如何在WPF開發(fā)中,通過Popup實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊彈出浮動(dòng)??看翱?有需要的小伙伴可以了解下
    2024-01-01
  • C# 調(diào)用C++寫的dll的實(shí)現(xiàn)方法

    C# 調(diào)用C++寫的dll的實(shí)現(xiàn)方法

    C#調(diào)用C++的非托管類的dll其實(shí)很簡(jiǎn)單基本就是固定的調(diào)用格式,有需要的朋友可以參考一下
    2013-10-10
  • 詳解C#如何實(shí)現(xiàn)一個(gè)事件總線

    詳解C#如何實(shí)現(xiàn)一個(gè)事件總線

    Event Bus(事件總線)是一種用于在應(yīng)用程序內(nèi)部或跨應(yīng)用程序組件之間進(jìn)行事件通信的機(jī)制,它允許不同的組件通過發(fā)布和訂閱事件來進(jìn)行解耦和通信,本文給大家介紹了C# 如何實(shí)現(xiàn)一個(gè)事件總線,需要的朋友可以參考下
    2024-10-10
  • C#登錄界面代碼詳細(xì)圖文教程

    C#登錄界面代碼詳細(xì)圖文教程

    我們?cè)谑褂肅#做項(xiàng)目的時(shí)候,基本上都需要制作登錄界面,下面這篇文章主要給大家介紹了關(guān)于C#登錄界面代碼的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-04-04
  • C#使用表達(dá)式樹(LambdaExpression)動(dòng)態(tài)更新類的屬性值(示例代碼)

    C#使用表達(dá)式樹(LambdaExpression)動(dòng)態(tài)更新類的屬性值(示例代碼)

    這篇文章主要介紹了C#使用表達(dá)式樹(LambdaExpression)動(dòng)態(tài)更新類的屬性值,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-01-01
  • C#啟動(dòng)進(jìn)程的幾種常用方法

    C#啟動(dòng)進(jìn)程的幾種常用方法

    這篇文章主要介紹了C#啟動(dòng)進(jìn)程的幾種常用方法,實(shí)例分析了C#對(duì)系統(tǒng)進(jìn)行的相關(guān)操作技巧,需要的朋友可以參考下
    2015-05-05
  • C#中實(shí)現(xiàn)Fluent Interface的三種方法

    C#中實(shí)現(xiàn)Fluent Interface的三種方法

    這篇文章主要介紹了C#中實(shí)現(xiàn)Fluent Interface的三種方法,本文講解了Fluent Interface的簡(jiǎn)單實(shí)現(xiàn)、使用裝飾器模式和擴(kuò)展方法實(shí)現(xiàn)Fluent Interface等3種實(shí)現(xiàn)方法,需要的朋友可以參考下
    2015-03-03
  • C#中DateTime的時(shí)間加減法操作小結(jié)

    C#中DateTime的時(shí)間加減法操作小結(jié)

    本文主要介紹了C#中DateTime的時(shí)間加減法操作小結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • C#實(shí)現(xiàn)關(guān)閉其他程序窗口或進(jìn)程代碼分享

    C#實(shí)現(xiàn)關(guān)閉其他程序窗口或進(jìn)程代碼分享

    這篇文章主要介紹了C#實(shí)現(xiàn)關(guān)閉其他程序窗口或進(jìn)程代碼分享,本文給出了兩種方法,并分別給出示例代碼,需要的朋友可以參考下
    2015-06-06
  • C#模式畫刷HatchBrush用法實(shí)例

    C#模式畫刷HatchBrush用法實(shí)例

    這篇文章主要介紹了C#模式畫刷HatchBrush用法,實(shí)例分析了模式畫刷HatchBrush繪圖的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06

最新評(píng)論

稷山县| 阜城县| 游戏| 恭城| 三河市| 扶余县| 嘉祥县| 江城| 九龙坡区| 定陶县| 兴山县| 梓潼县| 岳西县| 察哈| 江城| 蕉岭县| 镶黄旗| 钟山县| 西青区| 黄梅县| 志丹县| 即墨市| 英吉沙县| 米易县| 宁河县| 上林县| 香河县| 萍乡市| 武宁县| 舟山市| 辰溪县| 兰考县| 曲阜市| 错那县| 天峨县| 手游| 英超| 抚顺市| 忻州市| 阿拉善盟| 民权县|