<asp:Button id="SubmitButton"
     Text="Submit"
     CommandName="Submit"
     OnCommand="CommandBtn_Click"
     runat="server"/>
这是一个web服务器控件button 又是一个类 Button btn = new Button() 可以这样生成 这两者之前倒底是什么关系啊? 还有 web服务器控件中的      Text="Submit"
     CommandName="Submit"
     OnCommand="CommandBtn_Click"  这些和对象上的  btn.Text = "......" 之类的属性啊 方法啊 事件啊 又有什么关系啊?怎么想也想不明白啊!  求高手帮忙解答一下 

解决方案 »

  1.   

    <asp:Button id="SubmitButton"
         Text="Submit"
         CommandName="Submit"
         OnCommand="CommandBtn_Click"
         runat="server"/>这是一个web服务器控件错,这是一个web服务器控件的实例。之所以你想不明白是因为,.aspx是不能运行的。
    是 ASP.NET 读取了 .aspx 里面的内容,解析出了 html 和程序代码,并且编译成了C#代码,之后才可以运行,ASP.NET 幕后做了很多事情。你可以把 aspx 想象成一个配置文件。它的规则,是asp.net定义的,而不是C#语言定义的。而asp.net是C#(严格地说也有别的语言)写的一个程序,和你写的一般的程序没有什么不同,它不属于C#,也不属于.NET框架,只是之上的程序。你也可以写一个程序,读取一个配置文件,根据里面的文本,创建对象、赋值。没有什么奇怪的。
      

  2.   

    你可以模拟ASP.NET发生的一切:编写一个控制台程序,叫 iis.exe
    编写一个类库,叫aspnet.dll,里面有一个方法,叫 string GetPage(string PageName) { ... }
    编写一个类,叫 HomePage.dll,里面有个类叫DefaultPage,有个方法叫void Page_load() { ... }
    编写一个文本文件,叫default.aspxiis.exe和aspnet.dll代表Web服务器和ASP.NET
    HomePage.dll和default.aspx代表你的网站。运行iis.exe
    输入“http://localhost/default.aspx” 后,它去掉用
    aspnet.dll 里面的 GetPage("default.aspx")
    GetPage会去读取default.aspx文件,知道这个页面对应的类是HomePage.dll里面的DefaultPage,于是创建它,并且调用Page_Load。
    然后解析default.aspx,把里面的控件说明文本转换为HTML代码,转换方法是,不断调用HomePage.dll里面的属性,获得数据,赋值,填写到default.aspx的控件声明里面。
    最后,返回产生的html
    最后iis.exe获取这些html,输出出来。
      

  3.   

    当然这是一个非常微缩的模拟。但是你可以看到,离开了iis.exe和aspnet.dll,default.aspx和HomePage.dll自己不会做任何事情,default.aspx里面写的东西充其量就是xml格式的说明文件,一点意义也没有。