首页 新闻 搜索 专区 学院

asp.net与CSS,HTML

0
悬赏园豆:10 [已解决问题] 解决于 2013-10-15 00:54

1.

最近看asp.net,感觉和html,css等web前端技术有点混淆了。 <asp: name id='id' runat='server'> 这个没问题,创建web服务器控件。 这里的id,和CSS的ID概念完全不是一回事。 ASP.NET本身就是html组成吧 区别就是 .html .aspx后缀。  但是在传统的html中 , 我们可以写 javascript 和vbscript ,如<script type='text/javscript'> </script>不知道写成<script type='text/javscript' runat='server'>  </script> 会怎么样?  ,而在asp.net里,毋庸置疑,我们写成 <script runat="server">
Sub Page_Load
lbl1.Text="The date and time is " & now()
End Sub
</script>, 我知道这是ASP.NET的page_load的event handler,但是你说,这个算javascript 还是vbscript ?

2.

用vs.net,写ASP.NET的时候,我添加web控件后,在源端,我们可以看到控件的代码,也可以添加script脚本,如<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" /> ,但问题是: Button1_Click 我可以写在aspx文件的script,作为子例程,也可以像winForm那样,双击该button定义一个事件,如

protected void Button1_Click(object sender, EventArgs e)
    {

    } 这两者有啥区别?

三五千大牛的主页 三五千大牛 | 初学一级 | 园豆:169
提问于:2012-01-24 23:04
< >
分享
最佳答案
0

1.很明显不是javascript,因为它运行在服务器端。

2.你需要知道,asp.net的本质其实就是将javascript技术加以包装而成,其aspx文件所生成的发送到客户端的代码只包括html,css,javascript等,不包含任何服务器脚本代码。

当你在页面中加入web 控件你添加了一个onclick事件,在你生成的html代码里可以看到 

<input type="submit" name="Button1" value="Button" />

并不存在该事件的定义。那么他是如何工作的呢?

首先通过form表单的post方法提交表单到服务器端(看看httprequest),然后在后台我们可以通过

Request.Form集合里看到这个button(只有 button与imagebutton可以看到因为他们实现了IpostBackEventHandler接口,具体可看这篇文章-http://www.cnblogs.com/yangtongnet/archive/2011/02/12/1952875.html)

这里asp.net会帮我们查看,发现产生回发的控件是这个button一而且注册了button1_click 事件,那么他就会执行

protected void Button1_Click(object sender, EventArgs e)
    {

    } 这个方法

这就是事件的用处。

收获园豆:10
Dino H.Y | 初学一级 |园豆:151 | 2012-01-31 09:45
其他回答(1)
0

楼上基本上都说了,至于事件写在.aspx里还是.aspx.cs里其实都是一样的,asp.net已经把传统的html进行了包装,在Web服务器接收到.aspx页面时会进行处理...

三桂 | 园豆:3565 (老鸟四级) | 2012-01-31 18:30

<script type='text/javscript' runat='server'> 这句话不会报错,但是type 和runat 取其一就可以。 同意么

支持(0) 反对(0) 三五千大牛 | 园豆:169 (初学一级) | 2012-02-01 16:41

@albert.jin:

 当然会报错,<script type='text/javscript'>这里是包含客户端js代码片段(因为type申明了文件MIME类型),而<script runat='server'>是包含服务器端代码交由服务器端去处理的,2者是有区别的...

<script type='text/javscript' runat='server'> 这种的话貌似是不支持的...

支持(0) 反对(0) 三桂 | 园豆:3565 (老鸟四级) | 2012-02-02 10:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册