How to include js files in the view. ASP.NET MVC 4

I wonder why my js file work when I call it in the view:

@section Scripts {  
<script>   

    function myFunction() {
        alert("Hello1");
    }       

</script>
}

but does not work when I call it:

@section Scripts {

   <script type="text/javascript" src="https://stackoverflow.com/questions/24763493/~/Views/Home/script.js"></script>
   <script>   
         myFunction();
    </script>
}

It’s because .js files are not accessible in the ~/Views/ folder. You have to enable it.

To enable access to .js files in the Views folder, you can add the following to your Views’ folder’s web.config directly under the handlers tag:

<add name="JavaScriptHandler"
         path="*.js"
         verb="*"
         preCondition="integratedMode"
         type="System.Web.StaticFileHandler" />

Alternatively put your script into the ~/Scripts/ folder and reference it like such:

@Scripts.Render("~/Scripts/script.js")

Its better practice to place your Js file in Script folder and access it from there. You could write this code in view’s head to use the js file

@Scripts.Render("~/Scripts/script.js")

you have to add your script in the Bundle config :

 public static void RegisterBundles(BundleCollection bundles)
        {
            bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                        "~/Scripts/jquery-{version}.js",    "https://stackoverflow.com/questions/24763493/~/Views/Home/script.js"));

this worked for me

You should Add rendersection to your Layout Page which your view using.

@RenderSection("scripts", required: false)


The answers/resolutions are collected from stackoverflow, are licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0 .
Read More:   How to maximise Screen use in Pupeteer ( non-headless )

Similar Posts