über web-Methoden mit master-Seiten
Ich habe eine Funktion, die auf allen Seiten meiner Website, die befindet sich in meiner master-Seite, und ich möchte es auf eine Laufzeit von einigen jQuery-Ajax-Methode.
Habe ich einige code, wie dies im moment
jQuery
$(document).ready(function() {
$("#test").click(function() {
$.ajax({
type: "POST",
url: "Default.aspx/GetDate",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
$("#test").text(msg.d);
}
});
});
});
HTML in der Master-Seite
<div id="test">Click here for the time.</div>
Asp.Net code hinter meiner Master-VB
<WebMethod> _
Public Shared Function GetDate() As String
Return DateTime.Now.ToString()
End Function
Derzeit das funktioniert nicht, es sei denn ich bewege die web-Methode, um die Default.aspx
VB Seite
Gibt es eine Möglichkeit, ändern kann ich das Teil
url: "Default.aspx/GetDate",
Verwenden Sie die master-Seite-Funktion?
Habe ich versucht es zu verändern
url: "template.master/GetDate",
Aber dies nur gibt mir ein 404 Fehler
Irgendwelche Ideen?
Vielen Dank im Voraus
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre webmethod-code kann nicht wohnen in der codebehind für Ihre master-Seite.
Ich habe festgestellt, es einfacher, eine tatsächliche web-service-oder WCF-Dienst in meinem Projekt für die Dinge, die ich werde brauchen zu nennen, die von mehreren Seiten.
EDIT :
Hinzufügen, um einen WCF-Service zu Ihrem Projekt:
Mehr als ein paar Beispiele hier auf Stackoverflow...
Hoffe, das hilft.
Wie darum, das webmethod-in einer Basis-Klasse?
Dann erbt diese Klasse von diese Seiten, die Sie wollen, setzen Sie das webmethod.
Verzeihen Sie mir gemischt C# und VB, ich bin nicht vertraut mit VB-syntax.
Können Sie die Basis-Methode der Klasse route, wie Andreas bereits erwähnte.
Stellen Sie sicher, dass:
(im Ajax-Aufruf:)
http://example.com/
, wird die urlnull
. Oder andere sub-Pfade, die nicht die Standard-Dokument explizit.