客户端的按钮如何知道在服务器端调用哪个事件?

时间:2015-02-17 16:41:32

标签: asp.net .net server-side

我去了一次采访,我在ASP.Net上被问到这个问题:

客户端有一个按钮,点击它会调用服务器端的按钮点击事件。

当按钮位于客户端时,它如何与服务器端的事件交互,它背后的机制究竟是什么?

当我们在onclick上写下事件名称时,我回复说按钮点击事件被调用,但是访调员说它是如何与服务器交互的?

我不确定机制,有人可以解释一下吗?

2 个答案:

答案 0 :(得分:0)

简而言之,首先会在客户端引发并捕获click事件。然后,事件消息通过HTTP Post传输到服务器。

页面必须解释帖子以确定发生了什么事件,然后在服务器上的代码中调用适当的方法来处理事件。

您可以在此处阅读更多内容 - ASP.NET Web Forms Server Control Event Model

如果您想更深入一点,可以阅读Page Controller pattern implemented in ASP.NET

答案 1 :(得分:-1)

来自MSDN:

“如果请求是回发,则调用控件事件处理程序。之后,调用所有验证器控件的Validate方法,它设置各个验证器控件和页面的IsValid属性。(有一个例外,此序列:验证后调用导致验证的事件的处理程序。)“

所以这就是:

  1. 您点击了一个定义了服务器端事件的asp.net按钮
  2. 点击会导致回发(您可以查看为此生成的javascript)
  3. 然后在页面生命周期(page_load等)之后调用相应的事件。
  4. 有关完整的页面生命周期,请参阅此文章:

    https://msdn.microsoft.com/en-us/library/ms178472%28v=vs.100%29.aspx