码迷,mamicode.com
首页 > Web开发 > 详细

WebForm

时间:2015-09-06 21:37:09      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:

1  aspx的语法介绍:

    web窗体有三个文件,WebForm_Add.aspx类似html页面,WebForm_Add.aspx.c是触发的事件,WebForm_Add.aspx.designer.cs是控件元素的声明。

    web窗体中局部变量可以声明在.aspx中,成员变量可以声明在.aspx.cs中。

    .aspx中可以用<% %>写C#代码,可以用<%=name %> 和<%Response.Write(name); %>进行变量输出。

技术分享
   <div>
        <%=name %><br />
        <% var age = 18; %>
        <%=age %><br />
        <ul>
            <%
                for (var i = 0; i < 10;i++ )
                {
            %>
                    <li><%=i %></li>
                    <li><%Response.Write( i+1); %></li>
                    <li><%Response.Write(age + i); %></li>
            <%
                }
            %>
        </ul>
    </div>

<!-- name声明在了.aspx.cs中,至少是protected级别 -->
WebForm_Add.aspx

 2  .aspx与.aspx.cs的关系:

    .aspx.cs与.aspx.designer.cs是部分类,是同一个类WebForm_Add.cs,继承了IHttpHandler,

    同时有一个动态类.day5_webform_add_aspx.cs 继承WebForm_Add.cs,

    而day5_webform_add_aspx.cs 通过反编译可以看到它对 .aspx进行了字符串的替换和拼接,最终输出了html。

    如果父类WebForm_Add.cs有private字段,则子类day5_webform_add_aspx.cs 无法继承,也就无法用来替换.aspx 中的变量(被‘《%’标记的字符串)。

    总之,.aspx只是一个准备被替换和处理的模板,.aspx.cs和.aspx.designer.cs 是同一个类 WebForm_Add.cs,有一个动态的子类day5_webform_add_aspx.cs继承它。这个子类才是真正从事IHttpHandler的工作,进行替换和拼接,并最终生成html的类。

技术分享
 public partial class WebForm_Add : System.Web.UI.Page
    {
        protected string name = "茹鹏伟";
        
        protected void Page_Load(object sender, EventArgs e)
        {
            Context.Response.Write(this.GetType() + "<br/>");
            Context.Response.Write(this.GetType().Assembly.Location + "<br/>");
            Context.Response.Write(this.GetType().BaseType + "<br/>");
            Context.Response.Write(this.GetType().BaseType.Assembly.Location + "<br/>");
        }
    }
WebForm_Add --> 来自文件WebForm_Add.aspx.cs

输出结果是:

技术分享
ASP.day5_webform_add_aspx
C:\Users\yangguo\AppData\Local\Temp\Temporary ASP.NET Files\vs\758cfd64\1e0a1365\App_Web_ieh4u1km.dll
Web_Cassini.Day5.WebForm_Add
C:\Users\yangguo\AppData\Local\Temp\Temporary ASP.NET Files\vs\758cfd64\1e0a1365\assembly\dl3\5c75bb14\eb2719c0_a2e8d001\Web_Cassini.dll
打印结果,动态子类和父类所在dll

 

WebForm

标签:

原文地址:http://www.cnblogs.com/adolphyang/p/4787054.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!