1

对不起。这对你来说可能很简单......

我的 Web 表单中有一个按钮。在浏览器中,我打开了Fire Bug,看到了下面这个与Button对应的HTML

<input type="submit" id="btn" value="Upload" name="btn">

以下是我在服务器端的 Button HTML ...

<asp:Button ID="btn" runat="server" Text="Upload" OnClick="ButtonClick" /> 

因此,当用户点击现在位于客户端的按钮时,调用按钮的服务器端处理程序。

我的问题是这个映射是如何在内部完成的,我的意思是,用户在客户端点击按钮,这是在服务器端执行代码?因为按钮在服务器上不再可用。页面已下载,现在位于客户端。对?

在 windows 窗体应用程序中,这个概念很容易理解,因为按钮事件和处理程序都位于同一个文件中,并且没有客户端-服务器概念。

4

2 回答 2

1

一切都绑定在页面的 ViewState 中,在 PostBack 期间作为参数传递。所以实际上,按钮继续“活动”并且各种参数随之传递。如果您查看生成页面的源代码,您会看到一个__doPostBack处理正在发生的实际事件的 JavaScript 调用。这是以 http POST 请求的形式发送的,ViewState 将任何“有状态”信息提供给页面的服务器端代码。

这里还有很多事情要做,我建议您研究Asp.Net Page Lifecycle以更彻底地理解它。

于 2012-10-16T19:42:43.240 回答
0

按钮单击调用表单提交,将值发布到您的服务器,进而触发按钮单击事件。

于 2012-10-16T19:42:21.603 回答