views:

28

answers:

2

I am using jQuery .load to call an action but it is not found.

This is because the production website url is different to dev url.

function ProjectChange() {
    var projid = $("input[name='ProjectLink']:checked").val();
    $("#documentList").load("/Home/GetDocumentList/",
                            { page: 0, projectid: projid },
                            LoadComplete);
}

I don't want to hard code the url in to the action call.

How do I inject "Url.Content" or something into this please?

Malcolm

A: 

Is this what you wanted???

$("#documentList").load(
    '<%= VirtualPathUtility.ToAppRelative("~/Home/GetDocumentList") %>' ,
    { page: 0, projectid: projid }, LoadComplete);

It's not the nicest.

jwwishart
+1  A: 

Create a global javascript variable in your view containing the url:

<script type="text/javascript">
var documentListUrl = '<%= Url.Action("GetDocumentList", "Home") %>';
</script>

Then you could use this variable in your external javascript file:

$("#documentList").load(
    documentListUrl,
    { page: 0, projectid: projid },
    LoadComplete
);
Darin Dimitrov