Например, когда пользователь нажимает <button>
, я знаю, что обработчик событий на стороне сервера выполнит.
Но как возникли события на стороне клиента? Поскольку начальная страница (с использованием GET
) является чисто html на стороне клиента, является ли событие, поднятое javascript?
Если да, значит ли это.aspx автоматически сгенерирует код javascript на стороне клиента?
Например, у меня есть кнопка asp на странице.aspx:
<asp:Button ID="btnCalculate" runat="server" Text="Calculate" Width="122px" OnClick="btnCalculate_Click" />
OnClick
указывает, что это событие javascript, но где я могу найти применимый код javascript?
<asp:{Control>}>
- все серверные элементы управления, событие onclick, которое вы видите, не соответствует правильному представлению html.
<asp:Button ID="btnCalculate" runat="server" Text="Calculate" Width="122px" OnClick="btnCalculate_Click" />
Это приведет к чему-то удаленно:
<input id="btnCalculate" type="submit" value="Calculate"/>
который ссылается на обратный вызов (запрос post/get) на сервере, который затем вызывает btnCalculate_Click()
определенный в коде View asp.net c# (.aspx.cs):
public void btnCalculate_Click(object sender, EventArgs e){
...
}
Для сравнения, этот код c# ASPX напрямую преобразуется в тот же код html:
<button id="btnCalculate" onClick="btnCalculate_Click()"/>
Таким образом, вместо этого клиент (движок браузера) будет искать подходящую функцию javascript (например, в вашем сайте site.js
или любом другом предоставленном ресурсе javascript):
function btnCalculate_Click(){
alert("This is client side scripting");
}
Я думаю, вам нужно пересмотреть Client-Server-Paradigm
.
Клиент делает запрос, затем сервер принимает этот запрос.
В результате сервер отправляет клиенту "ответ" (ответ), который затем получает его.