PageMethod with Custom Handler
Posted
by Mister Cook
on Stack Overflow
See other posts from Stack Overflow
or by Mister Cook
Published on 2010-03-20T15:03:50Z
Indexed on
2010/03/20
15:11 UTC
Read the original article
Hit count: 397
ASP.NET
I have a page based web method which works fine, using [WebMethod], i.e
[WebMethod]
public static void DoSomethingOnTheServer()
{
}
I also have a custom page handler to make SEO friendly URLs possible,
e.g
http://localhost/MySite/A_nice_url.ext => http://localhost/MySite/page.aspx?id=1
I am using Server.Transfer in my ProcessRequest handler to achieve this. This all works fine. Also, my page method works fine when the user requests the URL such as:
http://localhost/MySite/page.aspx?id=1
However, when the user requests the custom handled URL, i.e.
http://localhost/MySite/A_nice_url.ext
The client reports that the PageMethod has been successfully completed, but it has not been called at all.
I'm guessing it has something to do with my custom handler, so I have modified it to include PathInfo:
public void ProcessRequest(HttpContext context)
{
// ... (code to determine id) ...
// Transfer to the required page
string actualPath =
"~/page.aspx" + context.Request.PathInfo + "?id=" + determinedId;
context.Server.Transfer(actualPath);
}
So now if a PageMethod is called, it will result in:
http://localhost/MySite/page.aspx/DoSomethingOnTheServer?id=1
I'm wondering if this is the correct syntax for calling a PageMethod.
When I try Server.Transfer reports:
Error executing child request for /MySite/page.aspx/DoSomethingOnTheServer
I've experimented with HttpContext.RewritePath
but not sure how to actually make it perform the request.
This does not seem to work, any ideas?
© Stack Overflow or respective owner