你或许还未听说过的一些ASP.NET 2.0要诀

【ASP.NET CORE 2.0】在CentOS上部署ASP.NET CORE 2.0程序【超详细】 突然来的需求,让以前ASP.NET写的系统要部署到Linux上,所以研究了一下。1. 安装CentOS网上一搜一大把,我是在虚拟机上安装的。可以参考2. 安装.NET CORE SDK for CentOS 72.1 添加.NET相关为了安装.NET,需要注册微软签名密钥和添加微软相关的支持。这个操作每台机器只能做一次。 打开命令行,输出以下命令:sudo rpm --import https:/ 阅读详情
在开发Web应用程序方面,Asp.net是一个令人敬畏的框架。如果你使用过一段时间,那么这就不是什么 秘密了。它提供了一些十分强大的新特征,而你只需要些少量的代码就能实现。我曾经列出一个清单,上面是一些你可以只用少量或不用任何c#/VB.net代 码就能实现的非常简单(甚至很酷)的功能。如果你有其他建议,可以添加评论,如果你的建议是一件能够容易应用的任务,我将进一步更新我的清单。

1、 当页面PostBacks的时候,保持滚动条的位置。
在ASP.NET 1.1中,当进行postback 操作的时候,如果想保持滚动条的位置,那真是一件痛苦的事情,特别是当页面上有一个grid(表格?)而你想编辑某一具体行的时候。页面将会重新加载,滚 动条位于页面顶端,而不是你期望的位置,这样你就不得不下拉滚动条。在ASP.net2.0中,你可以简单地在Page directive这里加上MaintainScrollPostionOnPostBack 属性(来实现同样的功能)。
<% @ Page Language = " C# "  MaintainScrollPositionOnPostback = " true "  AutoEventWireup = " true "  CodeFile = " "  Inherits = " "   %>  

2、 当页面加载的时候,控件获得默认焦点。
这是另一件很简单的事情,而不用通过写javascrip 脚本。如果你的页面上只有一个(或者两个)文本输入框,用户为什么非要点击文本框之后才能开始输入呢?光标难道就不能自动位于文本框,用户可以马上输入? 使用HtmlForm控件的DefaultFocus 属性,你就可以很容易地做到。
< form id = " frm "  DefaultFocus = " txtUserName "  runat = " server " >
  

</ form >  
 
3、 当用户按下Enter键的时候,设置默认触发按钮。
在ASP.NET 1.1中,这又是一件十分痛苦的事情。当用户按下Enter键的时候,你需要写一些javascript代码,来保证页面上适当的按钮触发一个服务器端 “Click”事件。幸运的是,每当用户按下Enter键的时候,你现在可以使用HtmlForm的DefaultButton 属性来设置点击哪一个按钮。还有一种情况,每当user(指光标是否更合适?)进入页面上不同面板触发不同的按钮,(这个情况下),就可以设置Panel 控件的DefaultButton 属性。
< form id = " frm "  DefaultButton = " btnSubmit "  runat = " server " >
  

</ form >  

4、 容易地定位nested controls(嵌套控件?排列整齐的控件?表达不出来...呵呵~)。
在 一个页面的控件层次中查找某些控件,确实是一件很头痛的事。但是如果你知道控件是如何嵌套(nest)的,你可以使用不怎么常用的快捷方式"$"来查找控 件,而不用写递归代码。If you're looking for a great way to recursively find a control (in cases where you don't know the exact control nesting) check out my good buddy Michael Palermo's blog entry.(这一句是广告,不翻了~)。以下代码展示了如何使用DefaultFocus 属性来给嵌套在FormView控件里面的文本框设置焦点。注意,用“$”来划定嵌套方式(nesting):
< form id = " form1 "  runat = " server "  DefaultFocus = " formVw$txtName " >
    
< div >
        
< asp : FormView ID = " formVw "  runat = " server " >
            
< ItemTemplate >
                Name
:  
                
< asp : TextBox ID = " txtName "  runat = " server "  
                    Text
= ' <%# Eval("FirstName") + " " + Eval("LastName") %> '   />
            
</ ItemTemplate >
        
</ asp : FormView >
    
</ div >
</ form >
在服务器端代码中调用FindControl()方法,也有一点小技巧。想了解更多细节,稍后请访问 I blogged about this 。这里有一个例子:
TextBox tb  =  this . FindControl( " form1$formVw$txtName " ) as TextBox;
if  (tb  !=  null)
{
    
// Access TextBox control
} 


5、Strongly-typed access to cross-page postback controls强类型方式访问跨页面PostBack控件。
这 一条比其他任何一点都更加involved(“包含”?不像,应该是“不常用”的意思吧),但是十分有用。一个页面提交信息到另一个页面,在这里 ASP.NET 2.0介绍了跨页面提交的概念。按钮提交数据到一个页面,把按钮的PostBackUrl属性设置为目标页面的名字,就是通过这种方式(实现跨页面提 交)。
一般情况下,可以通过PreviousPage.FindControl("ControlID")方式来访问提交的数据。然而,这需要看 情况(requires a cast),如果你需要访问先前页面中的属性(经常需要这么做)。如果在发起回传操作的页面后台代码中增加一个公有属性,那么你可以通过在本次回传的目标 页中增加PreviousPageType directive,以强类型的方式来访问这些公有属性。如果你还没有尝试过,这听起来或许有点混淆,所以允许我多解释一些。

假如有一个页面叫做Default.aspx,同时向外提供一个公有属性,来返回页面中定义的TextBox的值。数据所要提交到的页面(姑且叫做 SearchResult.aspx吧)就能够以强类型的方式访问到这些属性,只需要在SearchResult.aspx页面顶端增加 PreviousPageType directive:

<% @ PreviousPageType VirtualPath = " Default.aspx "   %>  

通过添加这个directive,SearchResult.aspx中的代码就可以以强类型的方式访问Default.aspx中定义的TextBox。在以下的示例中,假设Default.aspx中定义的属性名是SearchTextBox.

TextBox tb  =  PreviousPage . SearchTextBox; 

很明显,这行代码只有在上一页(Previous Page)是Default.aspx的情况下才能正常运行。同时PreviousPageType 也有一个TypeName属性,根据这个属性,你可以定义一个基类型,这样你可以让一个或者多个页面获取这个基类型的值来支持多页面。你可以从这里 了解更多关于PreviousPageType。
(这 段代码不好翻译,免于出错,仅给出部分意思,望达人补充,原文如下:This code obviously only works if the previous page is Default.aspx.  PreviousPageType also has a TypeName property as well where you could define a base type that one or more pages derive from to make this technique work with multiple pages.  You can learn more about PreviousPageType here .)

6、强类型方式访问MasterPages控件。
PreviousPageType directive 不是唯一一种提供强类型访问控件的方式。如果想通过强类型的方式访问定义在MasterPages中的控件,你可以在要显示的页面中增加 MasterType directive(记住,MasterType directive和PreviousPageType directive一样,也可以定义一个类型名)

<% @ MasterType VirtualPath = " MasterPage.master "   %>  

这样,你就能在content page中按以下代码方式访问目标master page中的属性:

this . Master . HeaderText  =   " Label updated using MasterType directive with VirtualPath attribute. " ; 

你也可以找到一些关于使用master page的技巧,包括在我先前的一篇blog 中所提到的“共享master page访问IIS虚拟目录”等。

7、验证组 Validation groups
你有这样一个页面,包含几个控件和几个按钮。当点击其 中一个按钮的时候,你希望evaluate指定的按钮(evaluate原意:评估,得到……的值;这里的意思:得到按钮的值),而不是页面中所有的按 钮。在ASP.NET 1.1 中,如果不去resorting to some hack code(怎么译?)的话,就很难处理这样的问题。ASP.NET 2.0给所有的验证控件和按钮(Button,LinkButton)增加了一个ValidationGroup属性,可以很容易地解决问题。如果在页面 顶端有一个TextBox和一个Button控件,紧挨着TextBox是一个RequiredFieldValidator控件,把button和 RequiredFieldValidator控件上的ValidationGroup属性值设置为相同的值,当点击按钮的时候,你就能fire(“激 活”?不解~)一个验证。当点击按钮的时候,任何定义在ValidationGroup之外的验证都被忽略了。这里有一个示例:

< form id = " form1 "  runat = " server " >

    Search Text
:   < asp : TextBox ID = " txtSearch "  runat = " server "   />  

    
< asp : RequiredFieldValidator ID = " valSearch "  runat = " Server "  
      ControlToValidate
= " txtSearch "  ValidationGroup = " SearchGroup "   />  

    
< asp : Button ID = " btnSearch "  runat = " server "  Text = " Search "  
      ValidationGroup
= " SearchGroup "   />
    
.
    Other controls with validators and buttons 
defined  here
</ form >  

8、编码的时候查找控件或者变量的名字。
这个技巧和Asp.net没有直接关系,与VS.net反而更 有关系。对你们这些只记住了控件或变量名的前几个字母而没有记住全名的人来说,这个技巧确实十分有用。这让我又有机会去提起来自microsoft下载到 的两个伟大的下载。第一,在输入控件名的前几个字母的时候,按下CTRL+SPACEBAR,VS.net将会跳出一个匹配项的简短列表。的确,这将更加 容易地找到控件或者变量的名字。(译者注:怎么没有第二了?)对于感兴趣的朋友,微软提供整套完整的VS.net快捷键下载:c# Version here 和VB.NET Version here 

补充一点:

 1. ~ 的用法

  一般的情况下,我们是使用./../ 这样的相对路径来确定和规划我们的资源(比如图片、资源文件),但这种方式下在我们部署应用的时候,可能会出错,另外对于.ascx的控件中如果包含了一 个图片,而这个控件被我们在不同层次的两个目录的aspx文件分别引用时,问题就会出现了。

  ~/image/about.bmp 是一种非常好的方法,它以Web应用程序的根目录为起始点,这样使得比你使用./image/about.bmp这样的方式要更加灵活和方便。有一点不 好,是这种方式是在ASP.NET运行时动态解析的,所以在IDE设计模式中,你可能不能预览它。

  2. 在刷新和提交页面后,保存你的页面滚动条的位置

   经常有这样的情况,我们需要用户提交一个表单,但是表单中有超过500+个?控件或文本框要填写,也就是说用户需要拉动IE的滚动条才能够填得完,那么 假如用户正在可见IE范围的2/3处,选择了一个组合框的值,很不幸组合框是服务器端的,那么也就意味着页面会提交一次,而当用户再看见刷新过的页面时, 页面确定在3/1的地方也就是显示在页面最开始的地方,用户只有拖动鼠标,然后接着刚刚的地方再填写剩下的250个控件,很不幸,370个控件又需要他选 择一下?

  用下面的方法可以很快地确定和记住你提交前的位置。

  网上的Old Dog Learns New Tricks也有一个类似的例子Maintain Scroll Position in any Page Element,不过他使用了Web Behavior这意味着你需要使用一个.htc文件

Private Sub RetainScrollPosition()

Dim saveScrollPosition As New StringBuilder
Dim setScrollPosition As New StringBuilder

RegisterHiddenField("__SCROLLPOS", "0")
saveScrollPosition.Append("<script language='javascript'>")
saveScrollPosition.Append("function saveScrollPosition() {")
saveScrollPosition.Append(" document.forms[0].__SCROLLPOS.value = thebody.scrollTop;")
saveScrollPosition.Append("}")
saveScrollPosition.Append("thebody.onscroll=saveScrollPosition;")
saveScrollPosition.Append("</script>")

RegisterStartupScript("saveScroll", saveScrollPosition.ToString())

If (Page.IsPostBack = True) Then

setScrollPosition.Append("<script language='javascript'>")
setScrollPosition.Append("function setScrollPosition() {")
setScrollPosition.Append(" thebody.scrollTop = " & Request("__SCROLLPOS") & ";")
setScrollPosition.Append("}")
setScrollPosition.Append("thebody.onload=setScrollPosition;")
setScrollPosition.Append("</script>")
RegisterStartupScript("setScroll", setScrollPosition.ToString())

End If

End Sub

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
RetainScrollPosition()
End Sub

  3. DataList使用不同风格的模板

  这招也非常实用,你可以制作两个不同的模板或表现形式,分别以.ascx控件的形式保存,运行时根据某个条件动态的选择使用其中的一个模板,另外ScottGu认为ItemDataBound方法也可以定制你显示的表现,比如加亮某个元素或是加一个促销广告图等等。

Dim theme As String
theme = DropDownList1.SelectedValue

DataList1.ItemTemplate = Page.LoadTemplate(theme & ".ascx") ---Cool
DataList1.DataSource = DS
DataList1.DataBind()


  4. 设置服务器端控件的焦点

Private Sub SetFocus(ByVal controlToFocus As Control)
Dim scriptFunction As New StringBuilder
Dim scriptClientId As String

scriptClientId = controlToFocus.ClientID
scriptFunction.Append("<script language='javascript'>")
scriptFunction.Append("document.getElementById('" & scriptClientId & "').focus();")
scriptFunction.Append("</script>")
RegisterStartupScript("focus", scriptFunction.ToString())
End Sub

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If (Page.IsPostBack = False) Then
SetFocus(TextBox1)
End If
End Sub


  5. 滚动DataGrid

  这招就更简单了,有时候你的页面只有一个固定的地方,但是需要显示非常多的数据,亦或是也不定,但是只有固定的一个地方给你显示它了。这时你就可以用下面这招,自动出滚动条,而且适用许多控件。很简单将你的控件放在一个DIV中将overflow属性设置成auto

<div style=“height:400px;width:200px;overflow:auto”>
<asp:datagrid id=“MyGrid” runat=“server”/>
</div>

  6. 动态创建控件

  利用PlaceHolder控件,这东西在ASP.NET 2.0 Mutil-View和Master Page中运用的就更加多了。

Sub Page_Load()
Dim i as Integer
For i=0 to 4
Dim myUserControl as Control
myUserControl = Page.LoadControl(“foo.ascx”)
PlaceHolder1.Controls.Add(myUserControl)
PlaceHolder1.Controls.Add(New LiteralControl(“<br>”))
Next i
End Sub


  7. 客户端代码的使用

  1). 可以使用客户端的事件代码,但两者不能同名,服务器端代码的名是你可以控制的。对于非ASP.NET的标准控件的自定义控件必须实现IAttributeAccessor接口或从WebControl派生并且可用expando属性

asp:ImageButton id=“foo”
ImageUrl=“start.jpg”
onMouseOver=“rollover(this);”
onMouseOut=“rollout(this)”
rolloversrc=“myrollover.jpg”
rolloutsrc=“myrollout.jpg”
runat=“server”/>

<input type=Button onClick=“return clientHandler()”
onServerClick=“Button1_Click” … />


  2). 使用可以在Postback之前执行客户端代码,当然也可以取消这次Postback,另外也可以访问客户端该页所有的客户端控件。

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)  Handles MyBase.Load
 RegisterOnSubmitStatement("foo", "return confirm('Are you sure you want to submit the order?');")
End Sub


  3). 还有更复杂的我认为不实用,大家可以自己去看,主要是运用RegisterStartupScript和JavaScript的技术

  以上文章介绍了一些ASP.NET中常用而且比较实用的技巧,希望能对大家的实际开发有所裨益! 

Unity集成阿里Qwen2.5-Omni全模态大模型实战:语音交互与多模态AI开发指南 本文详细介绍了在Unity中集成阿里Qwen2.5-Omni全模态大模型的实战指南。通过C#脚本开发,实现语音交互、图像分析等多模态AI功能,涵盖API调用、音频处理、流式响应解析等核心步骤,为游戏、虚拟人等Unity应用提供沉浸式智能交互解决方案。 阅读详情

相关推荐

Cadence SIP Layout 简单教程-第二章

[从whp1920 网易博客迁移至优快云] 第一章在正式布线之前做了必须做的准备工作,下面进入正题,打开Candence SIP RF Layout GXL软件。 第一节 导入外形尺寸 打开SIP设置文件保存路径,如下图所示进入导入DXF页面,选中前一章时画好的外框图。打开导入界面后,再进入DXF In Edit/View Layers界面选择所有层,导入Class选择DRAWING FOR...

whp1920的博客 6940

[翻译]你或许还未听说过的一些ASP.NET 2.0要诀

原文链接:http://weblogs.asp.net/dwahlin/archive/2007/04/17/simple-asp-net-2-0-tips-and-tricks-that-you-may-or-may-not-have-heard-about.aspx翻译不当请指正~~毕竟我这方面的能力还是蛮欠缺的,呵呵~~[04月26号:我已经将本文所有Tips做到一个Demo中,...

weixin_30894583的博客 157

S32DS3.5图形化配置实战:从零构建S32K144通信接口工程

本文详细介绍了如何使用S32DS3.5图形化配置工具从零构建S32K144通信接口工程。通过实战演示引脚配置、时钟树设置、SPI接口搭建等关键步骤,帮助开发者快速掌握NXP S32K系列开发技巧,提升嵌入式开发效率。特别针对S32DS3.5版本的新特性进行了深度解析,包括智能代码生成和调试优化方法。

weixin_26834815的博客 200

你或许还未听说过的一些ASP.NET 2.0要诀 [转]

在开发Web应用程序方面,Asp.net是一个令人敬畏的框架。如果你使用过一段时间,那么这就不是什么秘密了。它提供了一些十分强大的新特征,而你只需要些少量的代码就能实现。我曾经列出一个清单,上面是一些你可以只用少量或不用任何c#/VB.net代码就能实现的非常简单(甚至很酷)的功能。如果你有其他建议,可以添加评论,如果你的建议是一件能够容易应用的任务,我将进一步更新我的清单。1、当页面PostBa...

weixin_30387663的博客 127

硅传CC1310二次开发必备:手把手教你用JTAG解锁被锁定的Flash存储器

本文针对硅传CC1310模块二次开发中常见的Flash锁定问题,提供了从原理剖析到实战操作的完整解决方案。详细介绍了如何使用Uniflash和Flash Programmer 2等工具进行Flash解锁和擦除,并强调了硬件连接稳定性与供电质量的关键作用,帮助开发者彻底解决烧录障碍,为后续应用开发铺平道路。

weixin_29189373的博客 254

Autosar Davinci Configurator新建工程以及导入DBC和CDD

Autosar Davinci Configurator新建工程前言一、Autosar Davinci Configurator新建工程二、Autosar Davinci Configurator导入DBC和CDD1.引入库2.读入数据总结 前言 如何用 DavinciCFG 新建工程,以及导入DBC和CDD文件。 一、Autosar Davinci Configurator新建工程 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、Autosar Davinc

别再跑偏了的博客 1万+

分享 你或许还未听说过的一些ASP.NET 2.0要诀

在开发Web应用程序方面,Asp.net是一个令人敬畏的框架。如果你使用过一段时间,那么这就不是什么秘密了。它提供了一些十分强大的新特征,而你只需要些少量的代码就能实现。我曾经列出一个清单,上面是一些你可以只用少量或不用任何c#/VB.net代码就能实现的非常简单(甚至很酷)的功能。如果你有其他建议,可以添加评论,如果你的建议是一件能够容易应用的任务,我将进一步更新我的清单。1、当页面P...

weixin_30778805的博客 113

ubuntu18.04 升级Ubuntu 20.04

Ubuntu 18.04升级20.04指南:首先备份重要数据,更新当前系统并检查新版本可用性(sudo do-release-upgrade -c)。确认升级后执行sudo do-release-upgrade,按提示完成操作。升级过程需耐心等待,完成后重启系统。注意:升级前务必备份数据,确保系统为最新版本,以降低风险。升级后即可使用Ubuntu 20.04系统。

https://ophome.blog.youkuaiyun.com,在IT行业有多年的工作经验,尤其是在Python、Linux、负载均衡、Nginx和服务器运维等领域。 1060

[翻译]你或许还未听说过的一些ASP.NET 2.0要诀 (转)

原文链接:http://weblogs.asp.net/dwahlin/archive/2007/04/17/simple-asp-net-2-0-tips-and-tricks-that-you-may-or-may-not-have-heard-about.aspx翻译不当请指正~~毕竟我这方面的能力还是蛮欠缺的,呵呵~~在开发Web应用程序方面,Asp.net是一个令人敬畏的框架。如果你使...

weixin_30349597的博客 123

UWB 多传感器通信的纳秒无线位置和时钟同步方法

利用UWB高精度的特点,实现多节点下的无线时钟同步和定位。通过优化硬件架构,减少不确定延迟的影响,系统可以提供纳秒级时钟同步消息

DT程序员的博客 1330

R语言广义加型模型(GAM)的运用例子及实现教程

一旦拟合了广义加型模型,我们可以查看模型摘要和诊断,以评估模型的质量和拟合情况。# 查看模型摘要响应变量:mpg(汽车的燃油效率)拟合函数:mpg ~ s(hp) + s(wt)

Mrrunsen的博客 3446

Asp.net1.0 升级 ASP.NET 2.0 的几个问题总结

这几天升级了一下原来的1.1项目,发现了一些问题,总结一下放在这里,也提醒还没有来得及升级或准备升级的朋友,升级的过程中少走弯路,少浪费时间。1.Global.asax文件的处理形式不一样,转化后将出现错误,在vs2003中Global.asax具有代码后置文件,2.0下, 将代码分离文件移到 App_Code 目录下,以便使其自动变为可通过应用程序中的任意 ASP.NET 页面访问。“Code-

『 李天平的博客 』 1万+

zemax 如何编译用户自定义DLL(含VS下载教程)

zemax 如何编译用户自定义DLL(含VS下载教程)

weixin_72050316的博客 492

重拳出击ASP.NET2.0

   更多精彩图书:用完整实例剖析ASP.NET开发全过程中文书名: ASP.NET 2.0电子商务开发实战 英文书名: Beginning ASP.NET 2.0 E-Commerce in C# 2005: From Novice to Professional  原书作者:Cristian Darie, Karli Watson  译者: 徐锋施游

程序员世界的过客小小鸟 2475

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

ASP.NET 2.0 中 Web 事件

web.config:                                            简介loadTOCNode(1, summary);欢迎使用 ASP.NET 支持语音列 ! 我名称是 Jerry Orman。 我已经与 Microsoft 在 5 年, 并已经花费大量侧重于 Web 相关技术如 FrontPage 和新 SharePoint 技

路在何方 3104

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

IIS7.0 配置 ASP.NET 2.0

ASP.NET 2.0 部署 1.首先打开win7 的特性,路径我已标注 下面选中的是ASP.NET2.0, 如果要支持ASP.NET1.1,你的选中IIS6兼容 2. 设置安全选项 3. 添加.Net经典应用程序池 4.将站点转换为Applicat

liguo9860的专栏 2910

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

ASP2.0-ASP.NET杂记

ASP.NET杂记ASP.NET 页面有许多事件来完成这些任务。下面的列表包含 ASP.NET 1.0/1.1 中可以使用的所有页面事件: ● AbortTransaction ● CommitTransaction ● DataBinding ● Disposed ● Error ● Init ● Load ● PreRender ● Unload 这

MasterFT的专栏 1287

如何由ASP.NET 1.1移植到ASP.NET 2.0

来源:http://www.kingsnet.biz/Article/webdevelop/net/200804/4385.html新版本平台的推出总是伴随着许多压力,以及人们对期待已久功能的兴奋之情。开发者喜欢利用新技术建立应用程序,不过,在将现有的可靠应用程序由旧版本平台移植到最新最完善版本的过程中,总会遇到一些困难。 本周,我来讨论将在ASP.NET 1.1中建立的网络应用程序移植到

TonyWang的专栏 1057

部署asp.net mvc_在ASP.NET 2.0上部署ASP.NET MVC

部署asp.net mvcThis post will be filled with disclaimers and warnings. They are not just to CYA, but also to C my A and avoid my getting sacked. 这篇文章将充满免责声明和警告。 他们不仅是为了CYA ,而且是为了C我的A,并避免我被解雇。 I've been...

cunfuteng7334的博客 409
上一篇: JQuery 常用方法基础教程
下一篇: APPlication,Session,Cookie,ViewState和Cache之间的区别
booth.chen
博客等级 码龄17年 63粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值