I have the need to add a javascript include to my ASP.NET page. The url of the javascript file has two key/value pairs in the query string. But the ampersand is being escaped and I don’t want that.
Page.ClientScript.RegisterClientScriptInclude("myKey",
"https://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.2&s=1")
This results in the following HTML:
<script
src="https://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.2&s=1"
type="text/javascript"></script>
But what I really want is:
<script
src="https://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.2&s=1"
type="text/javascript"></script>
Help?
I have run into this in the past and never found a way around it. I needed to create the URL server side and I don’t like putting inline code in my aspx pages so I ended up using a
Literalcontrol and building the script tag and assigning it.For your example:
Then in the
Page_Load:A complete recreation would be to also do a check for the registered key by wrapping the assignment in an
iflike:But that is probably not needed since it is not being assigned anywhere else with the change of a
PostBackdouble assigning it.It’s not the cleanest solution and it would have been nice if the
RegisterClientScriptIncludehad some type of param to tell it to not encode. Unfortunately I don’t think there is any way around it and the above isn’t too bad. Most includes for script files usually don’t have the&so the vast majority would never run into this problem.