asp.net中mvc分页类

ASP.NET MVC核心基础 ASP.NET MVC简介 什么是ASP.NET MVC HttpHandler是ASP.net的底层机制,如果直接使用HttpHandler进行开发难度比较大、工作量大。因此提供了ASP.Net MVC、ASP.Net WebForm等高级封装的框架,简化开发,他们的底层仍然是HttpHandler、HttpRequest等这些东西。比如ASP.Net MVC的核心类仍然是实现了IHttpHandler接口的MVCHandler。 MVC技术的起源 首先先回想一个项目《超市管理系统》和《学生管 阅读详情

分页代码如下(PageHelper.cs):

代码

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Collections.Specialized;
  4 using System.Linq;
  5 using System.Web;
  6 using System.Text;
  7 using System.Web.Mvc;
  8 using System.Web.Routing;
  9 using System.Data.Objects.DataClasses;
 10 namespace System.Web.Mvc
 11 {
 12     public static class PagerHelper
 13     {
 14         /// <summary>
 15         /// 分页
 16         /// </summary>
 17         /// <param name="helper"></param>
 18         /// <param name="id">分页id</param>
 19         /// <param name="currentPageIndex">当前页</param>
 20         /// <param name="pageSize">分页尺寸</param>
 21         /// <param name="recordCount">记录总数</param>
 22         /// <param name="htmlAttributes">分页头标签属性</param>
 23         /// <param name="className">分页样式</param>
 24         /// <param name="mode">分页模式</param>
 25         /// <returns></returns>
 26         public static string Pager(this HtmlHelper helper, string id, int currentPageIndex, int pageSize, int recordCount, object htmlAttributes, string className,PageMode mode)
 27         {
 28             TagBuilder builder = new TagBuilder("table");
 29             builder.IdAttributeDotReplacement = "_";
 30             builder.GenerateId(id);
 31             builder.AddCssClass(className);
 32             builder.MergeAttributes(new RouteValueDictionary(htmlAttributes));
 33             builder.InnerHtml = GetNormalPage(currentPageIndex, pageSize, recordCount,mode);
 34             return builder.ToString();
 35         }
 36         /// <summary>
 37         /// 分页
 38         /// </summary>
 39         /// <param name="helper"></param>
 40         /// <param name="id">分页id</param>
 41         /// <param name="currentPageIndex">当前页</param>
 42         /// <param name="pageSize">分页尺寸</param>
 43         /// <param name="recordCount">记录总数</param>
 44         /// <param name="className">分页样式</param>
 45         /// <returns></returns>
 46         public static string Pager(this HtmlHelper helper, string id, int currentPageIndex, int pageSize, int recordCount, string className)
 47         {
 48             return Pager(helper, id, currentPageIndex, pageSize, recordCount, null, className,PageMode.Normal);
 49         }
 50         /// <summary>
 51         /// 分页
 52         /// </summary>
 53         /// <param name="helper"></param>
 54         /// <param name="id">分页id</param>
 55         /// <param name="currentPageIndex">当前页</param>
 56         /// <param name="pageSize">分页尺寸</param>
 57         /// <param name="recordCount">记录总数</param>
 58         /// <returns></returns>
 59         public static string Pager(this HtmlHelper helper,string id,int currentPageIndex,int pageSize,int recordCount)
 60         {
 61             return Pager(helper, id, currentPageIndex, pageSize, recordCount,null);
 62         }
 63         /// <summary>
 64         /// 分页
 65         /// </summary>
 66         /// <param name="helper"></param>
 67         /// <param name="id">分页id</param>
 68         /// <param name="currentPageIndex">当前页</param>
 69         /// <param name="pageSize">分页尺寸</param>
 70         /// <param name="recordCount">记录总数</param>
 71         /// <param name="mode">分页模式</param>
 72         /// <returns></returns>
 73         public static string Pager(this HtmlHelper helper, string id, int currentPageIndex, int pageSize, int recordCount,PageMode mode)
 74         {
 75             return Pager(helper, id, currentPageIndex, pageSize, recordCount, null,mode);
 76         }
 77         /// <summary>
 78         /// 分页
 79         /// </summary>
 80         /// <param name="helper"></param>
 81         /// <param name="id">分页id</param>
 82         /// <param name="currentPageIndex">当前页</param>
 83         /// <param name="pageSize">分页尺寸</param>
 84         /// <param name="recordCount">记录总数</param>
 85         /// <param name="className">分页样式</param>
 86         /// <param name="mode">分页模式</param>
 87         /// <returns></returns>
 88         public static string Pager(this HtmlHelper helper, string id, int currentPageIndex, int pageSize, int recordCount,string className, PageMode mode)
 89         {
 90             return Pager(helper, id, currentPageIndex, pageSize, recordCount, null,className,mode);
 91         }
 92         /// <summary>
 93         /// 获取普通分页
 94         /// </summary>
 95         /// <param name="currentPageIndex"></param>
 96         /// <param name="pageSize"></param>
 97         /// <param name="recordCount"></param>
 98         /// <returns></returns>
 99         private static string GetNormalPage(int currentPageIndex, int pageSize, int recordCount,PageMode mode)
100         {
101             int pageCount = (recordCount%pageSize ==0?recordCount/pageSize:recordCount/pageSize+1);
102             StringBuilder url = new StringBuilder();
103             url.Append(HttpContext.Current.Request.Url.AbsolutePath+"?page={0}");
104             NameValueCollection collection = HttpContext.Current.Request.QueryString;
105             string[] keys = collection.AllKeys;
106             for (int i = 0; i < keys.Length; i++)
107             {
108                 if (keys[i].ToLower() != "page")
109                     url.AppendFormat("&{0}={1}", keys[i], collection[keys[i]]);
110             }
111             StringBuilder sb = new StringBuilder();
112             sb.Append("<tr><td>");
113             sb.AppendFormat("总共{0}条记录,共{1}页,当前第{2}页&nbsp;&nbsp;", recordCount, pageCount, currentPageIndex);
114             if (currentPageIndex == 1)
115                 sb.Append("<span>首页</span>&nbsp;");
116             else
117             {
118                 string url1 = string.Format(url.ToString(), 1);
119                 sb.AppendFormat("<span><a href={0}>首页</a></span>&nbsp;", url1);
120             }
121             if (currentPageIndex > 1)
122             {
123                 string url1 = string.Format(url.ToString(), currentPageIndex - 1);
124                 sb.AppendFormat("<span><a href={0}>上一页</a></span>&nbsp;", url1);
125             }
126             else
127                 sb.Append("<span>上一页</span>&nbsp;");
128             if(mode == PageMode.Numeric)
129                 sb.Append(GetNumericPage(currentPageIndex,pageSize,recordCount,pageCount,url.ToString()));
130             if (currentPageIndex < pageCount)
131             {
132                 string url1 = string.Format(url.ToString(), currentPageIndex+1);
133                 sb.AppendFormat("<span><a href={0}>下一页</a></span>&nbsp;", url1);
134             }
135             else
136                 sb.Append("<span>下一页</span>&nbsp;");
137 
138             if (currentPageIndex == pageCount)
139                 sb.Append("<span>末页</span>&nbsp;");
140             else
141             {
142                 string url1 = string.Format(url.ToString(), pageCount);
143                 sb.AppendFormat("<span><a href={0}>末页</a></span>&nbsp;", url1);
144             }
145             return sb.ToString();
146         }
147         /// <summary>
148         /// 获取数字分页
149         /// </summary>
150         /// <param name="currentPageIndex"></param>
151         /// <param name="pageSize"></param>
152         /// <param name="recordCount"></param>
153         /// <param name="pageCount"></param>
154         /// <param name="url"></param>
155         /// <returns></returns>
156         private static string GetNumericPage(int currentPageIndex, int pageSize, int recordCount, int pageCount,string url)
157         {
158             int k = currentPageIndex / 10;
159             int m = currentPageIndex % 10;
160             StringBuilder sb = new StringBuilder();
161             if (currentPageIndex / 10 == pageCount / 10)
162             {
163                 if (m == 0)
164                 {
165                     k--;
166                     m = 10;
167                 }
168                 else
169                     m = pageCount%10;
170             }
171             else
172                 m = 10;
173             for (int i = k * 10 + 1; i <= k * 10 + m; i++)
174             {
175                 if (i == currentPageIndex)
176                     sb.AppendFormat("<span><font color=red><b>{0}</b></font></span>&nbsp;", i);
177                 else
178                 {
179                     string url1 = string.Format(url.ToString(), i);
180                     sb.AppendFormat("<span><a href={0}>{1}</a></span>&nbsp;",url1, i);
181                 }
182             }
183             
184             return sb.ToString();
185         }
186     }
187     /// <summary>
188     /// 分页模式
189     /// </summary>
190     public enum PageMode
191     {
192         /// <summary>
193         /// 普通分页模式
194         /// </summary>
195         Normal,
196         /// <summary>
197         /// 普通分页加数字分页
198         /// </summary>
199         Numeric
200     }
201 }
202 

 

PageInfo.cs

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 
 6 namespace System.Web.Mvc
 7 {
 8     public class PagerInfo
 9     {
10         public int RecordCount { get; set; }
11 
12         public int CurrentPageIndex { get; set; }
13 
14         public int PageSize { get; set; }
15     }
16 }

 

使用示例

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<PagerQuery<PagerInfo, IList<NewsArticleInfo>>>" %>

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    NewsList
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

    
<h2>NewsList</h2>

    
<table>
        
<tr>
            
<th></th>
            
<th>
                NoteID
            
</th>
            
<th>
                Title
            
</th>
            
<th>
                Author
            
</th>
            
<th>
                Hit
            
</th>
            
<th>
                ReplyNum
            
</th>
            
        
</tr>

    
<% foreach (var item in Model.EntityList) { %>
    
        
<tr>
            
<td>
                
<%= Html.ActionLink("Edit", "Edit", new { /* id=item.PrimaryKey */ }) %> |
                
<%= Html.ActionLink("Details", "NewsDetail", new { noteID=item.NoteID })%>
            
</td>
            
<td>
                
<%= Html.Encode(item.NoteID) %>
            
</td>
            
<td>
                
<%= Html.Encode(item.Title) %>
            
</td>
            
<td>
                
<%= Html.Encode(item.Author)%>
            
</td>
            
<td>
                
<%= Html.Encode(item.Hit)%>
            
</td>
            
<td>
                
<%= Html.Encode(item.ReplyNum)%>
            
</td>
            
        
</tr>
    
    
<% } %>

    
</table>

    
<p>
        
<%=Html.Pager("pager",Model.Pager.CurrentPageIndex,Model.Pager.PageSize,Model.Pager.RecordCount,PageMode.Numeric) %>
    
</p>

</asp:Content>

controller如下

 [AcceptVerbs(HttpVerbs.Get)]
 2         public ActionResult NewsList(int boardID,int? page)
 3         {
 4             PagerInfo pager = new PagerInfo();
 5             NewsArticleInfo info = new NewsArticleInfo();
 6             info.NewsBoard = new NewsBoardInfo();
 7             info.NewsBoard.BoardID = boardID;
 8             pager.RecordCount = Resolve<INewsBLL>().GetArticleDataList(info, ArticleTypeEnum.Pass);
 9             pager.PageSize = 10;
10             pager.CurrentPageIndex = (page!=null?(int)page:1);
11             IList<NewsArticleInfo> result = Resolve<INewsBLL>().GetArticleDataList(pager.CurrentPageIndex, pager.PageSize, ArticleTypeEnum.Pass, info);
12             PagerQuery<PagerInfo, IList<NewsArticleInfo>> query = new PagerQuery<PagerInfo, IList<NewsArticleInfo>>(pager,result);
13             return View(query);
14         }

【ASP.NET MVC4】第一课:初识ASP.NET MVC,创建第一个ASP.NET MVC项目 知识点:理解ASP.NET MVC 阅读详情

相关推荐

拯救者Y9000P 2022双系统实战:Ubuntu22.04分区优化与驱动避坑指南

本文提供联想拯救者Y9000P 2022款安装Ubuntu 22.04双系统的详细实战指南。重点讲解针对该机型的磁盘分区优化方案、NVIDIA显卡驱动安装避坑技巧,以及安装后的网络、时间同步等必备配置,帮助用户高效完成双系统部署并提升使用体验。

weixin_29208327的博客 425

ASP.NET MVC 简单的分页思想与实现

  作为一个程序猿,数据分页是每个人都会遇到的问题。解决方案更是琳琅满目,花样百出。但基本的思想都是差不多的。   下面给大家分享一个简单的分页器,让初学者了解一下最简单的分页思想,以及在ASP.NET MVC中的简单实现与应用。 一,定义分页器类   在ASP.NET MVC中,分页的数据源可能是各种不同的类型,所以最好使用泛型来定义。 public class P...

diaoqin4202的博客 552

使用基于python的neurora进行表征相似性分析(RSA)

发现了一款用于表征分析的Python API,还是挺方便的,这里简单介绍一下进行表征相似性分析的使用方法。

zjh12312311的博客 2766

ASP.NET MVC5 实现分页查询

对于大量数据的查询和展示使用分页是一种不错的选择,这篇文章简要介绍下自己实现分页查询的思路。 分页需要三个变量:数据总量、每页显示的数据条数、当前页码。 //数据总量 int dataCount; //每页显示的数据条数 int pageDataCount; int pageNumber; 根据数据总量和每页显示的数据条数计算出总页数,根据当前页码和...

weixin_33752045的博客 631

右腿驱动电路设计:从共模干扰原理到生物电采集实战

在生物电信号采集领域,共模干扰是影响测量精度的核心挑战之一,其本质源于环境电磁场通过容性耦合在人体表面产生的感应电流。根据欧姆定律,由于人体组织阻抗的不均衡性,共模电流会在不同测量点产生差异化的压降,从而转化为难以滤除的差分噪声。为解决这一问题,右腿驱动技术应运而生,它通过负反馈原理主动抵消干扰,显著提升系统的共模抑制比。该技术广泛应用于心电图、脑电图等医疗电子设备中,是确保微弱生理信号质量的关键环节。本文结合工程实践,深入剖析了右腿驱动电路中的仪表放大器选型、反馈环路稳定性设计以及PCB布局布线要点,为高

weixin_31476015的博客 445

使用项目管理画布启动项目

许多人对商业模式画布并不陌生,它是亚历山大·奥斯特瓦德(Alexander Osterwalder)、伊夫·皮尼厄(Yves Pigneur)在《商业模式新生代》(Business Model Generation)中提出的一种用来描述商业模式、可视化商业模式、评估商业模式以及改变商业模式的通用语言。 在我们做敏捷软件项目inception(项目启动规划)的时候经常会用到商业画布,此时它的作用是帮助我们快速了解客户的业务、产品和市场,帮助客户梳理自己的资源、优势和盈利模式,总的来说,商业画布是一种简单实用的

IDEAL Garden 1224

asp.net mvc 分页

手学类库, //css样式表 <style> ul.pagination { display: inline-block; padding: 0; margin: 0; } ul.pagination li { ...

愤怒的菜鸟 3119

Ubuntu24安装MongoDB(解压版)

依据前面 Linux 发行版本的信息,选择你需要的版本,文件格式选择 tgz 格式,最后点击 Download(下载到你的电脑)或 点击 Copy link 左侧图标(复制下载链接在使用服务器下载)依据前面 Linux 发行版本的信息,选择你需要的版本,文件格式选择 tgz 格式,最后点击 Download(下载到你的电脑)或 点击 Copy link 左侧图标(复制下载链接在使用服务器下载)默认情况下,只能在本机访问 MongoDB,要想远程访问 MongoDB,需要修改配置文件。

rao991207823的博客 2022

ASP.NET MVC分页的实现

在ASP.NET中,GridView控件本身就带有分页的功能,只要把当前页面的索引值赋给GridView的PageIndex就可以实现了分页,至于数据怎么分页,全都由GridView封装起来了。 在ASP.NET MVC中分页的实现就只能靠自己来设计了。首先来说一下分页的原理。现在有一个张news表,中间有很多信息,我们假设一页显示5条记录,这样,页面数量=总记录数/5;这里,如果出现小

Andrewniu的博客 2696

040、全志V853低功耗AI视觉平台的ISP调优——电池供电场景下的画质与功耗平衡

本文分享了全志V853 AI视觉平台在电池供电场景下的ISP调优经验。作者通过实际项目踩坑案例,揭示了V853 ISP的特殊性:不同于主流平台,其ISP与CPU共享时钟域,降噪能力有限,需特别注意功耗控制。关键优化策略包括:关闭无效ISP模块、优化Sensor联动时钟、采用场景自适应配置、开发快速启动模式等。特别指出V853个体差异大,量产需考虑高低温影响。文章强调V853的ISP功耗优化需从寄存器级别精打细算,不能简单套用其他平台经验,建议选型时单独评估ISP功耗,避免续航缩水。

zzfmlxs的博客 26

华为OD机试 - 取出尽量少的球 - 感谢@吴修柯反馈(Python/JS/C/C++ 双机位A卷 200分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。感谢@吴修柯反馈,2025-03-22,A卷200分考试真题。某部门开展 Family Day 开放日活动,其中有个从桶里取球的游戏。有 N 个容量一样的小桶等距排开,且每个小桶都默认装了数量不等的小球,每个小桶装的小球数量记录在数组 bucke

学Java,找哪吒 1487

asp.net mvc3分页代码

最近在学asp.net mvc3,与asp.net webForm比起来。确实能提高不少效率,特别是数据校验和数据源方面,基本上不用自己手写。但是总担心其entity framework框架,会不会影响程序运行效率,下面是我自己写的分页代码,欢迎大家指教 public ActionResult Index(int page) { int pageS...

weixin_33863087的博客 99

槽型光电开关传感器原理图设计,已量产(光电传感器)

在嵌入式设备的位置限位、物料计数等场景中,槽型光电开关是性价比极高的传感器方案 —— 它通过遮挡发射器与接收器之间的光路实现电平切换,电路简单且抗干扰性优于漫反射式光耦。今天分享一个实际项目中落地的槽型光电开关检测电路,从器件选型到逻辑设计都做了简化适配,适合小批量原型或低成本产品的需求。

不脱发的程序猿 720

Asp.net MVC2实现分页

今天用Asp.net MVC2做了一个分页的效果示例,上传分享,希望对初学者有一定的帮助: 代码如下: 1. Controllers 控制器中数据的读取:       public ActionResult Index(int ? id)        {  int index = id.HasValue ? id.Value : 1;              //从模型层取数据,注意

dange_h的专栏 1986

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

艾伟_转载:ASP.NET MVC分页的实现

在ASP.NET中,GridView控件本身就带有分页的功能,只要把当前页面的索引值赋给GridView的PageIndex就可以实现了分页,至于数据怎么分页,全都由GridView封装起来了。 在ASP.NET MVC中分页的实现就只能靠自己来设计了。首先来说一下分页的原理。现在有一个张news表,中间有很多信息,我们假设一页显示5条记录,这样,页面数量=总记录数/5;这里,如果出现小数,得进位...

weixin_34162629的博客 114

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

在asp.net mvc中创建使用Linq to sql的分页控件

2009-09-15修改,精简一些冗杂的代码,仅保留核心点击下载源代码及控件:SourceCode在使用Linq to sql做为数据源的可以使用该工具编码出快速高效的数据绑定,以下仅列出了在asp.net mvc中运用的例子注T:泛型引用上面的项目新建一个分页类继承上面的类 usingSystem;usingSystem.Collections.Generic;usingSystem....

weixin_30794491的博客 126

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

C#、ASP.NET、ASP.NET MVC、ASP.NET web form、asp.net core mvc的区别。哦我的上帝啊!这可真糟糕

微软的命名很糟糕。技术上有两个框架:ASP.NET和ASP.NET Core,它们分别基于.NET Framework和.NET Core构建。 当Microsoft首次尝试创建一个遵循MVC模式的“现代”Web应用程序平台时,它将这个新平台称为“ASP.NET MVC”,以区别于以前的ASP.NET应用程序(主要是Web Forms)。然后,为了更加混淆事情,他们后来添加了“ASP.NET We...

菜鸟变凤凰 2450

一文讲懂C#、ASP.NET、ASP.NET MVC、ASP.NET web form、asp.net core mvc的区别

一文讲懂C#、ASP.NET、ASP.NET MVC、ASP.NET web form、asp.net core mvc的区别

Blue 4512

ASP.NET——MVC编程

如何使用 C# 中的 MVC 模式去开发一个简单的 Web 应用程序,将业务逻辑、用户界面和请求处理清晰地分离,提高开发效率和代码的可维护性。根据需要,可以进一步扩展和优化该示例,添加更多的功能和页面。

2401_84642440的博客 2348

asp.net mvc 学习总结

自学MVC看这里——全网最全ASP.NET MVC 教程汇总 http://www.cnblogs.com/powertoolsteam/archive/2015/08/13/4667892.html MVC架构已深得人心,微软也不甘落后,推出了Asp.net MVC。小编特意整理博客园乃至整个网络最具价值的MVC技术原创文章,为想要学习ASP.NET MVC技术的学习者提供一个整合学习入口。本文从Why,What,How三个角度整理MVC 的学习资源,让学习者第一时间找到最有价值的文章,获取最彻底的ASp

Tusk_Act4的博客 2599

ASP.NET MVC

ViewStart.cshtml是一个全局的布局文件,程序中每个.cshtml页面都会默认使用_ViewStart提供的布局。同时.NET Framework 提供了多种技术框架,ASP.NET MVC是.NET Framework提供的众多技术框架中的一种,用于开发Web应用。ASP.NET MVC框架使用了约定大于配置的思想,按照框架约定的结构组织文件,浏览器请求某个Controller方法时,该方法默认返回与方法同名的.cshtml文件,浏览器接收.cshtml并渲染页面。.cshtml文件同名。

weixin_47249500的博客 1133

自学MVC看这里——全网最全ASP.NET MVC 教程汇总

MVC架构已深得人心,微软也不甘落后,推出了Asp.net MVC。小编特意整理博客园乃至整个网络最具价值的MVC技术原创文章,为想要学习ASP.NET MVC技术的学习者提供一个整合学习入口。本文从Why,What,How三个角度整理MVC 的学习资源,让学习者第一时间找到最有价值的文章,获取最彻底的ASp.NET MVC 框架知识,Let’s go!   1. Why :为什么

kong1940742529的博客 5974

ASP.NET MVC 入门

入门基础 ASP.NET MVC 是微软系列基于 C# 语言的 Web 开发框架,并不适合 0 基础入门,在学习之前你必须要了解 4 个知识点: 1、HTML 基础。网页的基本标签,结合 ASP.NET MVC 自带的 HTML 辅助方法来开发网页。 2、CSS 基础。修改页面样式,使得页面看起来更美观。 3、JavaScript 基础。和用户进行交互,表单验证是最基本的。 4、C# 基础语法。...

码农在途的博客 1127

ASP.NET MVC源代码下载。

http://aspnet.codeplex.com/ 现在最高版本ASP.NET MVC 3.0   http://aspnet.codeplex.com/wikipage?title=MVC&referringTitle=Home ASP.NET MVC ASP.NET MVC is a free, fully supported Microsoft framework fo

蓝叶菱的专栏 3878

ASP.NET MVC简介

ASP.NET MVC是一种构建web应用程序的框架,它将一般的MVC模式应用于ASP.NET 框架。那么,如何看待asp.net框架和asp.net mvc之间的关系呢?在asp.net 1.0发布时,asp.net和web from被人们看成是同一事物,尽管当时(2002)asp.net已经支持两层抽象,即ui层(web from层,由服务器控件和ViewState等组成);web层(管道程序...

Abel_01_xu的博客 879
下一篇: 一u
codingspace
博客等级 码龄17年 0粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值