ASP.NET如何在客户端上引发事件?

slo*_*ams 1 .net javascript c# asp.net

例如,当用户单击a时<button>,我知道服务器端的事件处理程序将执行.
但是客户端如何举办活动?由于初始页面(使用GET)在客户端纯粹是,是由引发的事件?

如果是,是否意味着.aspx会首先在客户端自动生成代码?

例如,我在.aspx页面上有一个按钮:

 <asp:Button ID="btnCalculate" runat="server" Text="Calculate" Width="122px" OnClick="btnCalculate_Click" />
Run Code Online (Sandbox Code Playgroud)

OnClick表示这是一个事件,但在哪里可以找到适用的代码?

jAC*_*jAC 5

<asp:{Control>}>是所有服务器端控件,您看到的onclick事件不是正确的表示.

<asp:Button ID="btnCalculate" runat="server" Text="Calculate" Width="122px" OnClick="btnCalculate_Click" />
Run Code Online (Sandbox Code Playgroud)

会产生这样的远程:

<input id="btnCalculate" type="submit" value="Calculate"/> 
Run Code Online (Sandbox Code Playgroud)

它指的是服务器上的回调(post/get请求),然后btnCalculate_Click()在View的 代码(.aspx.cs)中定义调用:

public void btnCalculate_Click(object sender, EventArgs e){
   ...
}
Run Code Online (Sandbox Code Playgroud)

相比之下,这个 ASPX代码将直接转换为相同的 "代码":

<button id="btnCalculate" onClick="btnCalculate_Click()"/>
Run Code Online (Sandbox Code Playgroud)

所以它会告诉客户端(浏览器引擎)寻找适用的函数(例如在你site.js或任何其他提供的资源中):

function btnCalculate_Click(){
    alert("This is client side scripting");
}
Run Code Online (Sandbox Code Playgroud)