Recently I migrated all code files from ASP.NET Web Application to ASP.NET WebSite (with Framework 4.5.2), because of some requirements we need to move towards website template. At the time I faced this issue, all the ajax calls stopped working. When I placed breakpoint on WebMethod, It was not getting fired.
Here is the WebMethod code:
[WebMethod(EnableSession = true)] public static string GetPageSummary(string pageid) { string html = ""; if (!string.IsNullOrEmpty(pageid)) { html = PageHelper.GetPageSummaryHtml(pageid); } return html; }
And here is the jquery Ajax call for that method:
$.ajax({ type: "POST", url: "MyPage.aspx/GetPageSummary", data: "{ 'pageid':'" + id + "'}", contentType: "application/json; charset=utf-8", dataType: "json", success: function (response) { showModelPopupForSummary(response.d) }, error: function (response) { //error-handling code... } });
It all looks fine and working in previous project, but not with new WebSite project.
After spending way too much time on this, I found out the solution for this.
You have to change enum value for AutoRedirectMode
. Go to App_Code/RouteConfig.cs
, inside RegisterRoutes()
method, you will see this line:
settings.AutoRedirectMode = RedirectMode.Permanent;
Change the enum value to RedirectMode.Off
, final statement would be:
settings.AutoRedirectMode = RedirectMode.Off;
After changing this all my ajax calls started working successfully.