欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

ASP.NET MVC懶加載如何逐步加載數(shù)據(jù)庫信息

 更新時(shí)間:2024年10月10日 10:24:17   作者:陸沙  
在ASP.NET MVC中實(shí)現(xiàn)數(shù)據(jù)庫的逐步加載可通過懶加載技術(shù)完成,首先,在EntityFramework中配置數(shù)據(jù)庫上下文,使用對(duì)應(yīng)的實(shí)體類映射數(shù)據(jù)庫表,本文給大家介紹ASP.NET MVC懶加載如何逐步加載數(shù)據(jù)庫信息,感興趣的朋友跟隨小編一起看看吧

環(huán)境:
win10, .NET 6.0

問題描述

假設(shè)我數(shù)據(jù)庫中有N個(gè)表,當(dāng)我打開某頁面時(shí),每個(gè)表都先加載一部分(比如20條),點(diǎn)擊表下某個(gè)按鈕,再加載下一部分,如此循環(huán)直至加載完畢。

解決方案

基礎(chǔ)版

數(shù)據(jù)庫查詢部分(Entity Framework)

BasicPartsDbContext.cs

using System.Data.Entity;
namespace WebApplication1.Models
{
    public class BasicPartsDbContext:DbContext
    {
        public BasicPartsDbContext() : base("name=conn1") { }
        public DbSet<BasicParts> BasicParts { get; set; }
    }
}

其中BasicParts是我的實(shí)體/模型類,數(shù)據(jù)類型與數(shù)據(jù)庫中某個(gè)表一一對(duì)應(yīng),內(nèi)容大概如下:

using System.ComponentModel.DataAnnotations.Schema;
namespace WebApplication1.Models
{
    [Table("dbo.表名")]
    public class BasicParts
    {
        // 對(duì)應(yīng)列
    }
}

"name=conn1"是指使用此數(shù)據(jù)庫配置。該配置在項(xiàng)目根目錄下的Web.config中:

在這里插入圖片描述

2. BasicPartsRepository.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace WebApplication1.Models
{
    public class BasicPartsRepository
    {
        private BasicPartsDbContext _context;
        public BasicPartsRepository(BasicPartsDbContext context)
        {
            _context = context;
        }
        public List<BasicParts> GetPagedData(int pageIndex, int pageSize) {
            return _context.BasicParts.OrderBy(i => i.id)
                .Skip(pageIndex * pageSize)
                .Take(pageSize)
                .ToList();
        }
    }
}

控制器

public class HomeController : Controller {
	private BasicPartsRepository _basicPartsRepository;
	...
	public ActionResult BasicPartsView() { 
    	return View();
	}
	[HttpGet]
	public JsonResult LoadMoreBasicParts(int pageIndex, int pageSize) {
    	var data = _basicPartsRepository.GetPagedData(pageIndex, pageSize);
    	return Json(data, JsonRequestBehavior.AllowGet);
	}
	...
}

前端頁面

<!DOCTYPE html>
<html>
<head>
    <title>Load More Data Example</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
    <div id="data-container">
        <!-- 這里將顯示從服務(wù)器加載的數(shù)據(jù) -->
    </div>
    <button id="load-more">加載更多</button>
    <script>
        var pageIndex = 0;
        var pageSize = 20;
        function loadMoreData() {
            $.ajax({
                url: '/Home/LoadMoreBasicParts',
                data: {
                    pageIndex: pageIndex,
                    pageSize: pageSize
                },
                success: function (data) {
                    pageIndex++;
                    // 將新加載的數(shù)據(jù)追加到頁面上
                    data.forEach(function (item) {
                        $('#data-container').append('<p>' + item.name + '</p>');
                    });
                }
            });
        }
        $(document).ready(function () {
            $('#load-more').on('click', function () {
                loadMoreData();
            });
            // 頁面加載完成時(shí),加載初始數(shù)據(jù)
            loadMoreData();
        });
    </script>
</body>
</html>

加載到表格版

其他部分保持不變,只修改前端:

<!DOCTYPE html>
<html>
<head>
    <title>Load More Data into Table</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
    <table id="data-table" border="1">
        <thead>
            <tr>
                <th>No.</th>
                <th>名稱</th>
                <th>序列</th>
                <th>描述</th>
                <th>類型</th>
            </tr>
        </thead>
        <tbody>
            <!-- 這里是數(shù)據(jù)行 -->
        </tbody>
    </table>
    <button id="load-more">加載更多</button>
    <script>
        var pageIndex = 0;
        var pageSize = 20;
        function loadMoreData() {
            $.ajax({
                url: '/Home/LoadMoreBasicParts',
                data: {
                    pageIndex: pageIndex,
                    pageSize: pageSize
                },
                success: function (data) {
                    pageIndex++;
                    // 將新加載的數(shù)據(jù)追加到表格中
                    data.forEach(function (item) {
                        $('#data-table tbody').append(
                            '<tr>' +
                            '<td>' + item.id + '</td>' +
                            '<td>' + item.name + '</td>' +
                            '<td>' + item.seq + '</td>' +
                            '<td>' + item.info + '</td>' +
                            '<td>' + item.stype + '</td>' +
                            '</tr>'
                        );
                    });
                }
            });
        }
        $(document).ready(function () {
            $('#load-more').on('click', function () {
                loadMoreData();
            });
            // 頁面加載完成時(shí),加載初始數(shù)據(jù)
            loadMoreData();
        });
    </script>
</body>
</html>

到此這篇關(guān)于ASP.NET MVC-懶加載-逐步加載數(shù)據(jù)庫信息的文章就介紹到這了,更多相關(guān)ASP.NET MVC逐步加載數(shù)據(jù)庫信息內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • ASP.NET Core 9.0 中新增的MapStaticAssets() 中間件詳解

    ASP.NET Core 9.0 中新增的MapStaticAssets() 中

    文章介紹了ASP.NET Core 9.0新增的MapStaticAssets中間件,該中間件解決了UseStaticFiles存在的缺陷,如缺乏靜態(tài)資源傳輸壓縮、ETag低效緩存和缺乏指紋識(shí)別,它通過生成時(shí)間壓縮、基于內(nèi)容的ETags和指紋識(shí)別來提升性能,感興趣的朋友一起看看吧
    2024-12-12
  • ASP.NET web.config中數(shù)據(jù)庫連接字符串connectionStrings節(jié)的配置方法

    ASP.NET web.config中數(shù)據(jù)庫連接字符串connectionStrings節(jié)的配置方法

    ASP.NET web.config中數(shù)據(jù)庫連接字符串connectionStrings節(jié)的配置方法,需要的朋友可以參考一下
    2013-05-05
  • ASP.NET MVC中的視圖生成實(shí)例分析

    ASP.NET MVC中的視圖生成實(shí)例分析

    這篇文章主要介紹了ASP.NET MVC中的視圖生成的過程,以實(shí)例形式詳細(xì)分析了控制器、布局與視圖的操作方法與技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2014-12-12
  • .Net集成敏感詞組件的步驟

    .Net集成敏感詞組件的步驟

    現(xiàn)如今大部分服務(wù)都會(huì)有用戶輸入,為了服務(wù)的正常運(yùn)行,很多時(shí)候不得不針對(duì)輸入進(jìn)行敏感詞的檢測、替換。如果人工做這樣的工作,不僅效率低,成本也高。水弟在這里寫了一個(gè)讓小編姐姐都覺得快的敏感詞組件接入示例,不需要依賴第三方服務(wù),只需兩分鐘即可享受清爽文字。
    2021-05-05
  • ASP.NET無刷新分頁簡單實(shí)現(xiàn)

    ASP.NET無刷新分頁簡單實(shí)現(xiàn)

    無刷新分頁功能,雖然比較簡單,但是涉及到的知識(shí)面蠻多的,我記錄一下制作的步驟與心得,僅供參考。如有哪里不足,希望大家指出,有更好的方法,也可以提出來,大家一起學(xué)習(xí)。
    2015-09-09
  • 淺談Asp.Net母版頁的相關(guān)知識(shí)

    淺談Asp.Net母版頁的相關(guān)知識(shí)

    母版頁的使用與普通頁面類似,可以在其中放置文件或者圖形、任何的HTML控件和Web控件,后置代碼等,這篇文章主要介紹了淺談Asp.Net母版頁的相關(guān)知識(shí),感興趣的小伙伴們可以參考一下
    2018-11-11
  • ASP.NET控件10個(gè)最有用的屬性詳解

    ASP.NET控件10個(gè)最有用的屬性詳解

    ASP.NET控件10個(gè)最有用的屬性詳解,學(xué)習(xí).net的朋友可以參考下。
    2011-09-09
  • Repeater與ListView功能概述及使用介紹

    Repeater與ListView功能概述及使用介紹

    Repeater(foreach)用于對(duì)綁定數(shù)據(jù)源中的數(shù)據(jù)進(jìn)行遍歷并按格式顯示,Repeater一般只用來展示數(shù)據(jù)ListView會(huì)自動(dòng)生成很多模板,免去手寫模板代碼的麻煩,感興趣的你可以了解下本文
    2013-02-02
  • 12小時(shí)制和24小時(shí)制獲取當(dāng)天零點(diǎn)的問題探討

    12小時(shí)制和24小時(shí)制獲取當(dāng)天零點(diǎn)的問題探討

    這篇文章介紹了12小時(shí)制和24小時(shí)制獲取當(dāng)天零點(diǎn)的問題探討,有需要的朋友可以參考一下
    2013-09-09
  • asp.net 關(guān)于字符串內(nèi)范圍截取的一點(diǎn)方法總結(jié)

    asp.net 關(guān)于字符串內(nèi)范圍截取的一點(diǎn)方法總結(jié)

    前兩天有一位網(wǎng)友提出了一個(gè)字符串內(nèi)截取字符串的問題,除了用普通的字符串截取的方式外,我推薦的是用LINQ方式來截取。兩者實(shí)際上差別不是很大,都是采用字符串截取方式,但后者從寫法和觀察效果會(huì)比前者簡單實(shí)用得多。
    2010-02-02

最新評(píng)論