Porównaj ceny domen i usług IT, sprzedawców z całego świata

Jak wywołać metodę niestatyczną z kodu asp.net przy użyciu jQuery


W formularzu internetowym mam następującą konfigurację jQuery, aby wywołać metodę w moim pliku związanym z kodem.
<script src="js/jquery-1.7.js" type="text/javascript"></script> <script type="text/javascript">
$(function () {
$("#newBtn").click(function () {
$.ajax({
type: "POST",
url: "AJAXCaller.aspx/GetTimer",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
async: true,
cache: false });
return false;
});
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
[url="#" class="link1" runat="server">Click here[/url]
<asp:LinkButton ID="newBtn" runat="server" Text="ASP Link"/>
<asp:Label ID="time_lbl" runat="server"/>

</form>
</body>

A kod za mną ma:
[WebMethod]
public void GetTimer()
{
time_lbl.Text = DateTime.Now.ToString();
}

Rozumiem, że obecnie nie działa to w obecnej składni.
Udało mi się uzyskać dostęp do tej metody, jeśli ustawię ją na stan statyczny, jednak nie chcę po prostu zwracać ciągu znaków lub pojedynczej wartości. Chcę uzyskać dostęp do metody, która z kolei uzyskuje dostęp do usługi sieci Web w celu zwrócenia kolekcji danych.
Chciałbym wiedzieć, czy można zrobić coś takiego, w którym mogę wywołać metodę i zmusić ją do zaktualizowania pola w interfejsie użytkownika, tak jak powyższa metoda, w której po wywołaniu skryptu serwera do interfejsu użytkownika zostanie przypisana wartość pole daty?
Z góry dziękuję za wszelkie sugestie.
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Nie jest to w ogóle możliwe, ponieważ nie można zaktualizować żadnego pola w interfejsie użytkownika po stronie serwera.
Zamiast używać
WebMethod
na stronie aspx, zamiast korzystać z usług internetowych Asp.Net, utwórz metody internetowe, które można wywołać za pomocą
ajax
.
Metoda
ajax
ma pomyślne wywołanie zwrotne, w którym można uzyskać odpowiedź z usługi, a następnie zaktualizować pole interfejsu użytkownika, uzyskując do niego dostęp za pomocą odpowiedniego selektora.
E.g
$(function () {
$("#newBtn").click(function () {
$.ajax({
type: "POST",
url: "AJAXCaller.asmx/GetTimer",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
async: true,
cache: false,
success: function(data){
$("#ClientIdOftime_lbl").text(data);
} });
return false;
});
});

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się