Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

@Url.Content in separate javascript file using ASPNET MVC 3 and Razor

I was using this

if (ret = 1)     iconType = new google.maps.MarkerImage('@Url.Content("~/Content/images/image.png")'); else if (ret = 2)     iconType = new google.maps.MarkerImage('@Url.Content("~/Content/images/image2.png")'); else if (ret = 3)     iconType = new google.maps.MarkerImage('@Url.Content("~/Content/images/image3.png")'); 

in a View (ASPNET MVC 3), now I'm moving the code to a separate javascript file (I'm using that because depending on a vaiable value I set as image of a control image.png, image2.png or image3.png).

Razor doesn't parse @Url.Content inside javascript file, What's the best way to handle this?

Thanks in advance! Guillermo.

like image 333
polonskyg Avatar asked Oct 05 '11 15:10

polonskyg


People also ask

How do you call a JavaScript file from a razor page?

You can call JavaScript methods from the Blazor pages with the help of JavaScript Interop by injecting the dependency IJSRuntime into the razor page. Then refer the script in the HTML page of the blazor application.

Can I use Razor code in JavaScript in ASP NET MVC?

Solution 1. You can't. Razor is a . NET assembly and doesn't run on JavaScript or in a browser.

Where do you put JavaScript on a razor page?

Calling JavaScript Function from Razor View To include a JavaScript function, it is as simple as include a <script> tag and define the function inside the script block.


1 Answers

I usually put a block like this in the beginning of the page:

<script>     var ROOT = '@Url.Content("~")'; </script> 

And then i refer to the ROOT variable in javascript:

if (ret = 1)     iconType = new google.maps.MarkerImage(ROOT + '/Content/images/image.png'); else if (ret = 2)     iconType = new google.maps.MarkerImage(ROOT + '/Content/images/image2.png'); else if (ret = 3)     iconType = new google.maps.MarkerImage(ROOT + '/Content/images/image3.png")'); 
like image 119
AHM Avatar answered Oct 13 '22 01:10

AHM