dagda1
dagda1

Reputation: 28930

ASP.NET MVC Scripting in js files

I still find myself having to declare global variables in my .aspx files (the project was started before razor). For example I have to declare global javascript variables like this in my .aspx files:

var getDistributionListUrl = '<%= Url.Action("GetDistributionList", "PublicDocument") %>';

I can then reference this variable in my .js files.

Is there a better way?

Upvotes: 2

Views: 75

Answers (1)

Darin Dimitrov
Darin Dimitrov

Reputation: 1039508

Is there a better way?

There is nothing wrong with this.

Personally I use HTML5 data-* attributes on some DOM elements that I am manipulating later in my scripts. For example:

<div id="foo" data-url="<%= Url.Action("GetDistributionList", "PublicDocument") %>">
    Hello
</div>

and then in my js:

$('#foo').click(function() {
    var url = $(this).data('url');
    ...
});

But in 99.99% of the cases those urls are associated with either <form> elements or link hrefs so in my javascript I simply retrieve and use this value when I need to do some progressive enhancement on the given DOM element (like unobtrusively AJAXifying forms or anchors).

Upvotes: 3

Related Questions