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.
Great insights! I really appreciate how clearly you’ve outlined the topic. Your post has provided some valuable clarity. Thanks for sharing!
ReplyDelete