Если вы хотите выполнить клиентский вызов на стороне сервера, вам нужно будет использовать некоторый JavaScript, чтобы инициировать обратную передачу, или выполнить AJAX-вызов вашего приложения.
Прежде всего, вам нужно обрабатывать нажатия клавиш. jQuery предоставляет удобный keypress
метод для захвата нажатий клавиш на элементе:
$("#mytextbox").keypress(function(e){
// Use e.which, etc to find out which key was pressed.
});
К сожалению, функциональные клавиши (F1-F12) нуждаются в особой обработке в определенных браузерах, где они не генерируют события keypress
. Чтобы надежно фиксировать функциональные клавиши во всех современных браузерах, вам нужно использовать события keydown
и keyup
. Я предлагаю вам прочитать эту статью , чтобы понять, как интерпретировать ключевые события в поддерживаемых вами браузерах.
Далее вам нужно создать веб-метод ASP.NET. Способ сделать это - создать на вашей странице открытый статический метод (или отдельную страницу, если хотите), а затем украсить его атрибутом WebMethodAttribute:
[WebMethod]
public static string MyMethod(int foo, int bar, string bob)
{
return "Welcome to The World of Tomorrow!";
}
Наконец, вы можете использовать jQuery для вызова этого метода и сделать что-то с ответом:
var request = $.ajax({
type: "POST",
url: "MyPage.aspx/MyWebMethod",
data: "{ foo:22, bar:19, bob:'A string' }",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
var response = null;
if (typeof (msg.d) != 'undefined')
response = msg.d;
if (response == null)
Error('Message returned by ASP.NET AJAX call is not in the expected format.');
alert(response);
},
error: function(request, textStatus, errorThrown) {
if (console && typeof console.log != "undefined") {
try {
var result = eval("(" + request.responseText + ")");
if (result && typeof result.Message != "undefined")
console.log(result.ExceptionType + ": " + result.Message + "\n" + result.StackTrace);
}
catch (ex) {
console.log(request.responseText);
}
}
}
});
При успешном вызове в этом небольшом фрагменте кода отобразится предупреждение «Добро пожаловать в мир завтра!», Переданное браузеру в ответ на метод ASP.NET.
Краткий ответ: то, что вы спрашиваете, вполне возможно, однако это не так просто, как вы можете себе представить. Проблемы с обнаружением нажатий клавиш могут быть особенно хлопотными. Удачи!