关于ASP.NET的实用技巧,其实我们已经接触到很多了。下面为大家总结一下,供大家参考。
1.跟踪页面执行
设置断点是页面调试过程中的常用手段,除此之外,还可以通过查看页面的跟踪信息进行错误排查以及性能优化。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.直接向控件添加客户端属性
- <this.style.cursor=''pointer''" 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属性,请看下面的例子:
姓名:
- ator ID="RequiredFieldValidator1" ControlToValidate="txtName"
- ErrorMessage="请填写姓名!" Display="Dynamic" runat="server">
这是一个HTML片段,其中有一个RequiredFieldValidator控件用于检查是否已填写姓名。下面是点击按钮时执行的服务器端代码:
- protected void btnSubmit_Click(object sender, EventArgs e)
- {
- if (Page.IsValid) //注意:不要遗漏对Page.IsValid属性的判断
- {
- Response.Write("你的名字是:" + txtName.Text);
- }
- }
其