ThinkGeo.com    |     Documentation    |     Premium Support

Redirecting *_GeoResource.axd Request to Sub-Application

Hi,


We are using ThinkGeo WebEdition (3.1.299) to develop a MVC web application which runs as a sub-application.


When the page renders the src attribute of img element for all tiles is relative path of tile_GeoResource.axd and the request goes to the parent application. The parent application can not handle the request and it returns an error.


As work around we have implemented a handler factory in parent application which returns an aspx page as a request handler for *_GeoResourece.axd requests. The aspx page does a Response.Redirect on Page_Load and passes the URL of sub-application. With this approach we are able to redirect all *_GeoResource.asd request to our sub-application and the application works fine.


This approach generates lot of response redirections increasing number of requests to web server. Is there a way (property) to specify base URL in the Map so that we have better control on the requests and specify absolute paths for ajax request. Or is there a better approach to use Maps WebEdition in a sub-application?


 


Regards,


Chandan


 



Chandan,


Thanks for using web Edition and welcome to discussion forum.


I think it’s hard to control the custom handler factory about how to request the sub-application. Maybe you can try the attached MVC sample that I have worked, and have a try. That works fine with MVC 1.0.


Any question please let me know, thanks.


Johnny

 



1875-Use_Map_With_MVC_Framwork.zip (237 KB)

Johnny,
 
Thanks for the sample code. It’s similar to what we have done to make ThinkGeo WebEdition work in MVC framework for our project.
 
After getting ThikGeo WebEdition work in MVC framework our first hurdle was to get it working for a sub-application and we found a work around for that (described in my original post).
 
There is a related issue which arises even in case of a simple MVC application and I’m trying to find a good solution for that.
 
The sample application works fine because RefinerMap action of Map controller is registered as default and the page redered on this action has a root URL. So, When the map loads it sends all it *_GeoResource request relative to the root URL and the whole thing works fine.
 
I’ve modified the sample application to give an idea of the issue I’m facing. The application now has two tabs (Green Map and Red Map).  The Green Map action renders a page with map but the Red Map action fails to render because *_GeoResource calls fail.

-Chandan


 



1886-ThinkGeoMVCSample.zip (358 KB)

Chandan, 
  
 Thanks for giving the information why the application will run into error, i’m sure it’s releated to the request root path,but that requires a big changes in WebEdition that i have done.I will do a entire test, then let you know the result as soon as possible.   
  
 thanks, 
  
 Johnny

Johnny, 
  
 Thanks for the changes. Waiting for the new release. 
  
 There’s one more issue in using map in MVC framework which I have faced.  
  
 If we use map control in a partial view then we get JS error (expected ;) when the page renders. The cause of this is that the RenderPartial method uses a GUID (with hyphen) for id of NamingContainer of map control.  As a result the clientID and uniqueId of mapcontrol has this GUID (with hyphen). When this is used in JS as a variable name by WebEdition the JS throws an error as hyphen can not be used in JS variable names. 
  
 I had to overcome this issue by overriding ClientID and UniqueID and return ID. This has it’s own cons but it was good enough for kind of implementation I am doing.  
  
 Thanks, 
 Chandan

I am glad you at least found a workaround for this issue. I will let the Web Team know about this issue for a more dependable solution. Thank you.

The Web team informed me that with a few Web edition restructuring, we can have the map control used in ASP.net MVC framework normally. We will give you a date on when this issue will be resolved. Thank you.

Hello all,



It may interest you to know that in response to feedback like yours, we have developed and launched a new Map Suite control dedicated to ASP.NET MVC development.  The initial beta of Map Suite MVC Edition is available for immediate download; if you're still interested in MVC development with Map Suite, this is the edition for you.  It's ideally suited to targeting mobile and touch-based devices and gives you greater control than Webforms in numerous areas.



You can find more information about the MVC Edition here.



Let us know if you have any questions, or feel free to post your comments in the MVC Edition forum!



Thanks for using Map Suite,

The ThinkGeo Team