与,网页生命周期

本文介绍了ASPX页面中两种服务器端脚本的使用方法:一种用于声明字段和方法,适用于类定义,不可包含可执行语句;另一种用于字段访问和方法调用,用于Page派生类的Render函数,可在生成网页时调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

嵌在aspx页面中的两种服务器端脚本书写方式:

  • <script runat=server>...</script>

      服务器端脚本块,只用于字段和方法的声明。代码直接放入类的定义,不能包含有字段访问、方法调用等可执行语句。

      <!-- test1.aspx -->

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

      <html>

      <script runat=server>

      //可以在块内声明函数,编译正确

      protected void MyFunction()

      {

          _Message.InnerText="Hello!";

      }

      //不能在块内执行可执行语句,红色代码会导致编译错误

      _Message.InnerText="Hello!";

      </script>

      <body>

            <span id=_Message runat=server />

      <body>

      <html>

  • <% ... %>

      服务器端脚本标记,只用于字段的访问和方法的调用。代码放入Page派生类的Render函数主体中,在生成网页时,被调用。

      <!-- test3.aspx -->

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

      <html>

      <body>

            <span id=_Message runat=server />

            <%

             //不能在标记对内声明函数,红色代码编译错误

             protected void MyFunction()

             {

                 _Message.InnerText="Hello!";

             }

             //可以在标记对内执行可执行代码,编译正确

             //但页面不显示"Hello!"语句,原因见备注1

             _Message.InnerText="Hello";

            %>

      <body>

      <html>

 

备注1:所有在<% %>标记之内的服务器端代码,都要添加到Page类的Render方法中。这是,服务器端span已经把它自己呈交给响应缓冲区,并将内部文本设为空字符串。所以,此时的赋值不影响网页输出(受限于网页的生命周期,区别于传统的桌面控件模型)。如果要通过服务器端代码影响span的内部文本的输出,其代码如下:

      <!-- test1.aspx -->

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

      <html>

      <script runat=server>

      protected void MyFunction(Object src,EventArgs e)

      {

          _Message.InnerText="Hello!";

      }

      protected void Page_Init(Object src,EventArgs e)

      {

          Page_Load += new EventHandler(MyFunction);

      }

      </script>

      <body>

            <span id=_Message runat=server />

      <body>

      <html>

备注2:既可以通过定义事件处理程序,也可以通过重写Page基类中定义的虚函数,与这类事件联系在一起。大多数服务器端的编程操作,应在网页的Load事件处理程序或者服务器端控件的事件处理程序中完成。在创建了所有服务器端控件,并从请求的POST主体中还原出它们的状态之后,Load事件激活。这样不仅有机会查看用户提交的值,并且有机会改变控件的值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值