tags:

views:

32

answers:

2

I cannot get the following route to fire when a url is requested from a script tag. I have the following route:

            // maps to "/cache/cachecontent/JavaScriptInclude/1/javascript"
            routes.MapRoute(
                null,
                "cache/{action}/{key}/{version}/{type}",
                new { controller = "Cache", action = "CacheContent", key = "", version = "", type = "" }
            );

I have a javascript script tag like:

<script type="text/javascript" src="/cache/cachecontent/JavaScriptInclude/1/javascript" />  

Yet the route is not firing and the controller is not instantiated. If i drop the url into the address bar of the browser all is fine, but is not triggered from the javascript tag?

Any ideas?

A: 

I would look at FireBug and see what is loading. Are you using a virtual directory, if so the preceding slash will cause problems.

Dustin Laine
+2  A: 

Do this:

<script type="text/javascript" src="/cache/cachecontent/JavaScriptInclude/1/javascript"></script>

Instead of:

<script type="text/javascript" src="/cache/cachecontent/JavaScriptInclude/1/javascript" />

Notice the closing script tag at the end.

Darin Dimitrov
Always a gotcha! http://stackoverflow.com/questions/69913/why-dont-self-closing-script-tags-work
David Liddle