I've got a function on all pages in my site which is located in my master page and I want it to run from some jQuery Ajax method.
I've got some code like this at the 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 Master page
<div id="test">Click here for the time.</div>
Asp.Net code behind in my Master VB
<WebMethod> _
Public Shared Function GetDate() As String
Return DateTime.Now.ToString()
End Function
Currently this doesn't work unless I move the web method to the Default.aspx
VB page
Is there a way I can change this part
url: "Default.aspx/GetDate",
To use the master page function?
I tried changing it to
url: "template.master/GetDate",
But this just gives me a 404 error
Any ideas?
Thanks in advance
You can go the Base Class method route, as Andreas mentioned above.
Make sure:
(in Ajax call:)
How about putting the webmethod in a base class?
Then inherit this class from those pages you want to expose the webmethod.
Forgive me for mixed C# and VB, i am not familiar with VB syntax.
Your webmethod code cannot reside in the codebehind for your master page.
I've found it easier to include an actual web service or WCF service in my project for things that I will need to call from multiple pages.
EDIT :
To add a WCF Service to your project:
More than a few examples here on the Stackoverflow...
Hope that helps.