views:

114

answers:

1

Hi there,

I am playing with a proof-of-concept app in ASP.NET MVC and I have a query about routes when using jQuery. One of my functions requires me to call ~/jqdata/myFunction/ and this is all fine using

$.get("/jqdata/myFunction/" + $(this).attr("name"), function(data) { alert (data); }

However, I am not going to be able to control the virtual directotry into which the app is to be deployed. Within the Site.Master page, I can cludge this behaviour for styles and js files with runat="server" in the head, and a link to"~/Styles/site.css", for example, but I have no idea how to ensure jQuery calls the correct path to get its data.

Can anyone help, even if it means calling me an idiot for doing it this way or missing something really obvious? I'm a winforms guy, really, you see. :)

Thanks Marc

+4  A: 

You could use server side code to set the root of your website as a variable in JavaScript, perhaps in your MasterPage or maybe just in the view(s) you need it for:

var rootUrl = '<%= Html.ResolveUrl("~/")%>';

Then your function would be something along the lines of:

$.get(rootUrl + "jqdata/myFunction/" ...);
Garry Shutler
Excellent answer. Thanks.
ZombieSheep