ASP.NET常用小技巧

今天为大家介绍6个ASP.NET常用技巧,使用操作简单,具有很高的实用性,记得收藏哦

1.跟踪页面执行 
设置断点是页面调试过程中的常用手段,除此之外,还可以通过查看页面的跟踪信息进行错误排查以及性能优化。ASP.NET中启用页面跟踪非常方便,只需在Page指令中加入Trace="True"属性即可:设置断点是页面调试过程中的常用手段,除此之外,还可以通过查看页面的跟踪信息进行错误排查以及性能优化。ASP.NET中启用页面跟踪非常方便,只需在Page指令中加入Trace="True"属性即可:

<%@ Page Language="C#" Trace="true"> 

跟踪信息可以分为两类: 
a.页面执行详细情况 

其中主要包括页面生命周期中各事件列表、控件树列表(可以查看每个控件的HTML字节数以及ViewState字节数)、Session状态、Application状态、Cookie集合、QueryString集合、服务器变量等信息。 
b.自定义跟踪信息 
通过在页面代码中调用Trace.Write()或Trace.Warn()方法便可将指定内容写入跟踪信息中的"Trace Information"节。就算页面发生了错误,跟踪信息还是会显示出来,并且在发布应用程序时无需删除相关的跟踪代码,只需从Page指令中移除Trace属性即可。

2.在服务器端控件中添加客户端属性 
我们有时会向服务器端控件中添加一些特殊的属性,这类属性不需要服务器端的处理,只需简单的发送至客户端即可,我们不妨称其为客户端属性,例如HTML属性或自定义属性(可能用于实现某种特定的JavaScript功能)。可以通过以下几种方法达到这个目的: 
a.直接向控件添加客户端属性 

<asp:Button ID="MyButton" Text="ClickMe" onmouseover="this.style.cursor='poi nter'" runat="server" />

其中的onmouseover是客户端属性,注意,编译器是允许这种写法的,但会显示警告。 
b.调用内置方法 
可以通过调用WebControl.Attributes.Add()方法为控件添加客户端属性,如下所示:

MyButton.Attributes.Add("onmouseover", "this.style.cursor='pointer'");

这也是最常用的方法。 
c.创建自定义控件 
如果某个类型的服务器端控件中经常需要添加客户端属性,则可以考虑创建一个继承自该服务器端控件的自定义控件,其中包含特定的客户端属性。 
正是考虑到这一点,ASP.NET 2.0中为按钮控件(包括Button、LinkButton、ImageButton控件)提供了OnClientClick属性,可以这样写:

MyButton.OnClientClick = "alert('Hello!')";

真是贴心的功能!

3.表单数据的服务器端验证 
将数据验证任务从服务器端迁移到客户端的过程促使了JavaScript的产生,这也是我们沿用至今的一种方式。但只有在保证客户端JavaScript正常运行的前提下,这种方式才能发挥其作用。不幸的是,总有一些例外,比如浏览器不支持JavaScript,或者用户刻意关闭了浏览器的JavaScript功能,这就导致了第一重防护失效。比较保险的做法是加入第二重防护,即对用户提交的数据进行服务器端验证,但这无疑将增加开发者的工作量。 
ASP.NET 2.0提供了一系列表单数据验证控件,可以非常轻松的完成客户端及服务器端的双重数据验证任务。但要使服务器端验证功能发挥作用,还需要用到Page.IsValid属性,请看下面的例子:

<form id="MyForm" runat="server">
<div>
  姓名:<asp:TextBox ID="txtName" runat="server"></asp:TextBox>
<asp:RequiredField Validator ID="RequiredFieldValidator1"
ControlToValidate="txtName" ErrorMessage="请填写 姓名!" Display="Dynamic" runat="server"></asp:RequiredFieldValidator>
 </div>
<div>
  <asp:Button ID="btnSubmit" Text="提交" runat="server" />
</div>
</form> 

这是一个HTML片段,其中有一个RequiredFieldValidator控件用于检查是否已填写姓名。下面是点击按钮时执行的服务器端代码:

protected void btnSubmit_Click(object sender, EventArgs e)
{
  if (Page.IsValid) //注意:不要遗漏对Page.IsValid属性的判断
{
    Response.Write("你的名字是:" + txtName.Text);
}
 } 

其中,要特别注意对Page.IsValid属性的判断,只有页面中所有验证控件对数据的验证都成功时,Page.IsValid属性才为True,这代表提交的数据为有效数据,可以进入下一步操作。

4.跳过表单验证 
在某些情况下,我们需要跳过表单中所有控件的验证,然而在另外一些情况下,我们却希望有选择的触发表单中某些控件的验证功能。分别来看看这两种情况: 
a.跳过所有验证 
假设有个表单,其中除了各种数据录入控件外还有两个按钮,一个是提交按钮,另一个是取消按钮,同时表单中还有一些数据验证控件。我们希望当点击取消按钮的时候无需验证表单中数据的有效性,而是直接将页面提交至服务器并将其重定向到某个指定页面。 
要实现这个功能,可以利用按钮控件(包括Button、LinkButton、ImageButton控件)的CausesValidation属性,将该属性设为false即可跳过表单中的所有验证。 
b.触发某些验证 
假设有个表单,被划分成两个功能区,一个用于用户登录,另一个用于用户注册,我们希望当点击登录按钮时只触发登录区的数据验证,当点击注册按钮时只触发注册区的数据验证。 
解决办法是将相关的数据验证控件和数据提交控件(按钮控件)加入同一个验证组,这一点是通过将各相关控件的ValidationGroup属性设为相同的值来实现的。

5.保持滚动条位置 
假设有个页面,其中以列表形式显示了一些数据记录,每次编辑其中的记录时都需要向服务器提交页面,为了提供良好的用户体验,我们希望每次编辑一条记录并保存后,滚动条位置都能保持不变。传统的做法是每次提交页面时将当前滚动条所在位置信息按某种方式(Hidden字段或QueryString)传给服务器端,当页面返回客户端时,由服务器端根据传入的位置信息以JavaScript形式重新设置滚动条位置。 
如果通过ASP.NET来实现这一功能将变得非常简单,只需在Page指令中加入MaintainScrollPositionOnPostback="true"属性即可:

<%@ Page Language="C#"
MaintainScrollPositionOnPostback="true"> 

6.禁用不必要的ViewState 
在ASP.NET的运行机制中,ViewState起着重要的作用。ViewState经过编码后存入表单Hidden字段,每当页面回传至服务器时再进行解码。因此,ViewState的使用会带来两个问题:带宽的占用以及计算资源的消耗。好在不是所有控件都需要启用ViewState,我们完全可以禁用不必要的ViewState。 
ViewState默认是开启的,需要手动关闭:

a.禁用页面ViewState 
在Page指令中加入EnableViewState="false"属性即可:

<%@ Page Language="C#" EnableViewState="false"> 

加入这个属性后,整个页面以及其中的所有控件都将无法使用ViewState,因此需谨慎使用。 
b.禁用控件ViewState 
这是推荐的方式,将控件的EnableViewState属性设为False即可禁用其ViewState,这里有个简单的窍门: 
如果某个控件的状态不能由操作者改变,则可以禁用其ViewState。最典型的莫过于Label控件了,只能显示信息,无法操作。 
但TextBox、DorpDownList等控件的状态是可以改变的(通过输入、选择等操作),因此保留他们的ViewState还是有用的。

以上就是小编为大家整理的ASP.NET的6个小技巧,希望大家喜欢。

(0)

相关推荐

  • asp.net下PageMethods使用技巧

    以前一直都是用WEB Project方式开发网站,在不少地方使用PageMethods,可以说是轻车熟路了.这次想尝试下WEB Site方式,因为修改代码后不用编译,再次刷新页面就能看到效果,这点比较方便. 可是我在使用PageMethods时,却遇到了麻烦.加好了ScriptManager,给静态方法加上了[WebMethod]特性,可是页面输出就是看不到ScriptManager:( 以为是.net 3.5或vs2008的问题,google没有答案.又怀疑是网站中某个handlers或是导致

  • VS初始化命令 ASP.NET常用技巧

    要使用此参数,请执行以下操作: 1. 关闭所有 Visual Studio 2005 实例. 2. 单击"开始",选择"运行...". 3. 键入"devenv.exe /resetuserdata". 此命令会运行几分钟时间,与此同时,Visual Studio 清除设置并将其自身重置到其最初的状态.此时,您可以打开"任务管理器"来检查 devenv.exe 进程是否仍在运行.在结束运行后,可以重新启动 Visual Stu

  • ASP.net Textbox的技巧使用

    ①.大家在做Web开发的时候,可能也会遇到之前我所遇到的问题,在使用TextBox控件时,控件的边缘不能被背景图片完全覆盖掉,如图1: 因为Textbox解析后也是html-Text控件,而Text控件是默认有边,即是border:1px solid #000; 所以只要为Textbox控件加上如下的一小句CSS就可以了,即是"border:0px",最后效果如图2: ②.大家在做Web开发时,不知道大家有没有发现,当将Textbox控件的TextMode = "MultiL

  • asp.net项目开发中用到的小技巧

    1 显示枚举的值:<%# (CN80s.DDPM.Model.Enum.EnumBidCardStatus)(int)Eval("PerpaidCard_Status")%> 2 为下拉框绑定枚举: 复制代码 代码如下: GetEnumList(ddlBids); void GetEnumList(DropDownList ddl) { foreach (EnumBidCardType s in System.Enum.GetValues(typeof(EnumBidCar

  • ASP.NET User Control使用技巧一则

    User Control在ASP.NET开发中经常用到,如果很多页面都用到同一个User Control的话,那么每个页面都要先用<%@ Register -- %>引入User Control,然后才能使用,这样一来就显得非常麻烦,所以今天教大家一个简单的方法. 首先打开web.config,然后在<system.web>节点中添加如下代码(使用时根据自己情况修改): 程序代码 <pages> <controls> <add tagPrefix=&q

  • ASP.NET的实用技巧详细介绍

    关于ASP.NET的实用技巧,其实我们已经接触到很多了.下面为大家总结一下,供大家参考. 1.跟踪页面执行 设置断点是页面调试过程中的常用手段,除此之外,还可以通过查看页面的跟踪信息进行错误排查以及性能优化.ASP.NET中启用页面跟踪非常方便,只需在Page指令中加入Trace="True"属性即可: <%@ Page Language="C#" Trace="true"> 跟踪信息可以分为两类: a.页面执行详细情况 其中主要包括

  • asp.net中Null在从数据库读取的时候的一点点小技巧

    它的功能很简单,就是说先在数据库里查找为Name的字段,然后进行判断,如果它的值为空的话,那么number的值就加1. 比如,加黑的就是我们需要注意下的. 复制代码 代码如下: int number = 0; string connstr = @"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\lando\Desktop\UML Extension\MyPratices\WebServices\App_Data\Database1.mdf;I

  • asp.net下GDI+的一些常用应用(水印,文字,圆角处理)技巧

    public class MyGDI {     public static void CreateWatermark(string sSrcFilePath, string sDstFilePath, string sText1, string sColor1, string sSize1, string sFont1, string sText2, string sColor2, string sSize2, string sFont2, string sBgColor, string sT

  • asp.net 开发的一些常用技巧

    不使用页面缓存: 你可以在不想被缓存的页面Page_Load事件中加上如下代码 复制代码 代码如下: Response.Expires = 0; Response.Buffer = true; Response.ExpiresAbsolute = DateTime.Now.AddSeconds(-1); Response.AddHeader("pragma", "no-cache"); Response.CacheControl = "no-cache&q

  • ASP.NET 后台登录小技巧介绍

    对于后台一些需要登录才能访问的页面,你是不是每次都去判断一下登录时保存在session或者cookie里面的值是否存在啊!假如后台有几十个这样的页面,那么每次都得判断,真心的感到烦,在这里我分享一下我知道的一个解决这个问题的方法吧!呵呵...大牛莫笑,只是想让初学者学习一下学习.NET的童鞋应该都知道吧,我们建的一个Demo.aspx页面都是继承于Page类,如下图:为了达到我们需要的结果,那好,现在我们来新建一个CheckLoginedPage类 :       现在,让我们的 CheckLo

  • Asp.Net性能优化技巧汇总

    本文搜集汇总了Asp.net性能优化的各种技巧,对于Asp.Net开发人员有很好的参考借鉴价值.具体内容如下: 一.选择会话状态存储方式 在Webconfig文件配置: <sessionState mode="???" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"

随机推荐