捉ASP.NET的错误,返回错误信息
Page对象最主要的事件有:Init.Load和UnLoad。当进行网页初始化时触发Page对象的Init事件,接着加载网页并触发Page对象的Load事件,然后如果包含其他服务器控件事件的时候,当满足发生条件则触发相应服务器控件的事件,最后离开时触发Page对象的UnLoad事件。在每个页面文件里几乎都可以找到Page对象的Load事件和Init事件。
privatevoidPage_Load(objectsender,System.EventArgse)
{
//如果客户机上本商城的Cookie存在,则根据该Cookie显示个性化的顾客欢迎信息
if(Request.Cookies["IStore_UserName"]!=null)
{
WelcomeMsg.Text="欢迎"+Request.Cookies["IStore_UserName"].Value+"来到网上商城!";
}
}
privatevoidPage_Init(objectsender,EventArgse)
{
InitializeComponent();
}
这是Default.aspx(首页)中的Page对象的Load事件和Init事件,其中Cookies存储了客户信息,用来显示个性话的客户欢迎信息。
privatevoidPage_Load(objectsender,System.EventArgse)
{
//从传到该页面的请求对象的参数集合中获取GoodsID
intGoodsID=Int32.Parse(Request.Params["GoodsID"]);
//获取商品的详细信息
IStore.IStoreDBOGoodsDetail=newIStore.IStoreDBO();
IStore.GoodsDetailsmyGoodsDetails=GoodsDetail.GetGoodsDetails(GoodsID);
desc.Text=myGoodsDetails.Description;
UnitCost.Text=String.Format("{0:c}",myGoodsDetails.UnitCost);
ModelName.Text=myGoodsDetails.ModelName;
ModelNumber.Text=myGoodsDetails.ModelNumber.ToString();
GoodsImage.ImageUrl="GoodsImages/"+myGoodsDetails.GoodsPicture;
addToCart.NavigateUrl="AddToCart.aspx?GoodsID="+GoodsID;
}
上面的是GoodsDetails.aspx(用于显示商品的详细信息)中的Page对象的Load事件,其中desc.Text、UnitCost.Text、ModelName.Text、ModelNumber.Text、GoodsImage.ImageUrl和addToCart.NavigateUrl都是用来显示商品信息的页面控件。
Request对象派生自HttpRequest类,它的主要功能是从客户端获取信息,包括浏览器种类、用户输入表单中的数据、Cookies中的数据和客户端认证等。
if(thecontext.Request.Cookies["IStore_CartID"]!=null)
{
Returnthecontext.Request.Cookies["IStore_CartID"].Value;
}
else
{
GuidtempShoppingCartId=Guid.NewGuid();
Thecontext.Response.Cookies["IStore_CartID"].Value=tempShoppingCartId.ToString();
returntempShoppingCartId.ToString();
}
这是GetShoppingCartId()方法中使用Response对象的Cookies集合来获取用户购物车的ID。这个方法在多个页面事件中都有调用,例如在AddToCart.aspx页面中。
Resquest对象的功能与Response对象的功能相反,它用于将服务器端的信息发送到浏览器。Resquest对象的常用方法有十个,其中最常用最简单的方法是Writer方法和Redirect方法。Writer方法是将指定的内容写入页面文件中,Redirect方法是通知浏览器连接指定的URL,即进行页面跳转。例如:Response.Redirect("Default.aspx")。
Response.Write("alert(\"对不起,你的权限不够!\")");
这一段就是使用的Resquest对象的Writer方法向浏览器发送信息。
Server是最基本的ASP.NET对象,它派生自HttpServerUtility类,提供了服务器端的基本属性和方法。可以通过Page对象的Server属性来获取相对应的Server对象,即Page.Server。
Server.Transfer("Login.aspx");这是在实例中Server对象Transfer方法的简单应用。
Session对象派生自HttpSession类,每个连接用户都拥有一个自己的Session对象,这个Session对象用于在该用户访问的各页面之间传递信息,即Session是同一连接所有网页的共用对象。在本例中Session对象的Contents属性记录的是用户的ID,在Login.aspx页面中开始加载记录:Session.Add("strUserID",userId);到用户注销退出系统调用Session对象的Clear方法清除Contents属性的变量:Session.Clear()。
Application对象是让在同一个应用内的多个用户共享信息,并在服务器运行期间持久地保存数据。该对象在网站上应用最广的就是记录本网站的信息,如访问人数,在线人数等。
由此可见Application对象和Session对象是差不多的,都是ASP.NET文件公用的对象,所不同的是所有用户连接的是同一个Application对象,而每个连接的用户都拥有各自的Session对象,有多少用户就会有多少的Session对象,而Application对象只有一个。
2.2.2页面控件的应用
在ASP.NET中,基于服务器控件的思想已日趋的成熟,具有很好的可操作性、灵活性和扩展性。ASP.NET中可以使用的大多数控件都不需要在ASPX页面中嵌入很多的代码,只需将需要的控件拖入ASPX页面中,在添加几个属性,就可以让很多控件实现服务器端的功能。这些控件是被封装的,复杂的用户接口设计被隐藏在后台,开发人员无需关心这些控件的实现,只需要按照指定的方式添加一些代码就可以使用控件。然后可以通过编程的方式访问控件,以定义控件的外观,对事件的处理等。在ASP.NET中有HTML控件、WEB服务器控件和用户自定义控件3大类控件。下面是用户自定义控件和页面验证控件的应用。
ASP.NET服务器控件已经提供了大量的功能,但是它们并不能包涵每一种情况。程序员往往希望将多个服务器控件封装成单个控件,而后在以后的站点中重用这些控件。用户控件是封装到可复用控件中的WEB窗体,在ASP.NET开发初期叫做Pagelet,它是除Code-Behind技术之外的另外一种将代码和内容分离、实现代码重用的技术。Code-Behind可以让多个不同页面的代码从同一基类派生出来,从而具有相似的行为。而用户控件不仅可以重用代码,还可以重用部分用户界面。用户控件和服务器控件一样,有自己的属性和事件,它的扩展名为.ascs。
上图所示的是个用户控件(Header.ascx),是由7个Hyperlink服务器控件、1个Label服务器控件和事件组成的。其事件的代码为:
PublicabstractclassHeader:System.Web.UI.UserControl
{
ProtectedSystem.Web.UI.WebControls.LabelWelcomeUserLabel;
PublicHeader(){
this.Init+=newSystem.EventHandler(Page_Init);
}
PrivatevoidPage_Init(objectsender,EventArgse){
InitializeComponent();
if(Request.Cookies["IStore_UserName"]!=null){
WelcomeUserLabel.Text=Request.Cookies["IStore_UserName"].Value;
}
}
这个用户控件在每一页面里都有使用,事件是显示用户欢迎信息,当用户登陆时显示:XX欢迎你!
另外在本例中还有3个用户控件:PopularGoods.ascx、Menu.ascx和bottom.ascx。
WEB网站程序中数据验证是一个必要的过程,也是一个比较烦琐的过程,程序员必须花大量时间来验证用户的每一个输入是否合法,如果用脚本语言来实现验证的话就加大了程序员的工作量,在ASP.NET中,开发人员不但可以轻松地实现对用户输入的验证,而且还可以选择验证在服务器端进行还是在客户端进行,这样就降低了开发人员的工作量,同时也降低了开发难度。验证控件提供功能强大的方法来检查WebFrom输入中的错误,可以在必要的时候向用户显示消息。和其他的服务器控件一样,验证控件可以通过被拖放添加到WebFrom页面上,验证的对象包括大部分的Web服务器控件及HTML控
上一篇:
asp_net很好的美容院管理系统加论文(论文和程序)
下一篇:
英语论文网([网学网]):英语专业本科生毕业论文写作