Reference Scripts in ASP.NET Core Application

26 Jun 202614 minutes to read

This section explains the available approaches for referencing client-side scripts and stylesheets for Syncfusion® ASP.NET Core controls. You can reference scripts via CDN, Static Web Assets (served directly from NuGet packages), NPM Packages, or the Custom Resource Generator (CRG).

Static Web Assets

Static web assets allow you to reference Syncfusion® scripts and stylesheets directly from the installed NuGet packages no CDN, no manual file copying. The ASP.NET Core framework serves these files automatically at the path _content/{PackageName}/, making them the most reliable and version-consistent way to reference scripts in production.

Enable Static Web Assets

To serve static web assets, call UseStaticFiles in the app’s ~/Program.cs file.

var app = builder.Build();
app.UseStaticFiles();

Reference scripts from Static Web Assets

The combined script for all Syncfusion® ASP.NET Core controls is available in the Syncfusion.AspNetCore.Base package. Add the reference in the <head> element of ~/Pages/Shared/_Layout.cshtml.

<head>

    <!-- Syncfusion ASP.NET Core controls scripts -->
    <script src="_content/Syncfusion.AspNetCore.Base/scripts/ej2.min.js"></script>
</head>

Note: Syncfusion® does not recommend referencing the combined ej2.min.js in production applications because it includes all controls, which increases page load time. For production, use individual control script references as described below.

Individual control script references

For production use, reference only the scripts for the controls your application actually uses. This reduces the JavaScript payload significantly. Install the relevant NuGet package for each control group, then reference its static web asset files.

The script path follows this pattern:

_content/{NuGetPackageName}/scripts/{script-file-name}

The following table lists each NuGet package, the controls it covers, and the individual script files it provides.

NuGet Package Controls Script Files
Syncfusion.AspNetCore.Charts AccumulationChart
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.Charts/scripts/sf-accumulation-chart.min.js"></script>
    Syncfusion.AspNetCore.BarcodeGenerator Barcode Generator, DataMatrix, QR Code
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.BarcodeGenerator/scripts/sf-barcode.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.BarcodeGenerator/scripts/sf-datamatrix.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.BarcodeGenerator/scripts/sf-qrcode.min.js"></script>
    Syncfusion.AspNetCore.BlockEditor Block Editor
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.BlockEditor/scripts/sf-blockeditor.min.js"></script>
    Syncfusion.AspNetCore.BulletChart Bullet Chart
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.BulletChart/scripts/sf-bullet-chart.min.js"></script>
    Syncfusion.AspNetCore.Buttons Button, CheckBox, Chips, FloatingActionButton, RadioButton, SpeedDial, Switch
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.Buttons/scripts/sf-button.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.Buttons/scripts/sf-check-box.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.Buttons/scripts/sf-chips.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.Buttons/scripts/sf-floating-action-button.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.Buttons/scripts/sf-radio-button.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.Buttons/scripts/sf-speed-dial.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.Buttons/scripts/sf-switch.min.js"></script>
    Syncfusion.AspNetCore.Calendars Calendar, DatePicker, DateRangePicker, DateTimePicker, TimePicker
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.Calendars/scripts/sf-calendar.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.Calendars/scripts/sf-datepicker.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.Calendars/scripts/sf-daterangepicker.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.Calendars/scripts/sf-datetimepicker.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.Calendars/scripts/sf-timepicker.min.js"></script>
    Syncfusion.AspNetCore.Charts Chart
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.Charts/scripts/sf-chart.min.js"></script>
    Syncfusion.AspNetCore.Chart3D 3D Chart
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.Chart3D/scripts/sf-chart3d.min.js"></script>
    Syncfusion.AspNetCore.CircularChart3D 3D Circular Chart
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.CircularChart3D/scripts/sf-circular3d.min.js"></script>
    Syncfusion.AspNetCore.CircularGauge Circular Gauge
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.CircularGauge/scripts/sf-circular-gauge.min.js"></script>
    Syncfusion.AspNetCore.Diagram Diagram
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.Diagram/scripts/sf-diagram.min.js"></script>
    Syncfusion.AspNetCore.DocumentEditor Document Editor, Document Editor Container
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.DocumentEditor/scripts/sf-document-editor.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.DocumentEditor/scripts/sf-document-editor-container.min.js"></script>
    Syncfusion.AspNetCore.DropDowns AutoComplete, ComboBox, DropDownList, DropDownTree, ListBox, Mention, MultiSelect
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.DropDowns/scripts/sf-auto-complete.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.DropDowns/scripts/sf-combo-box.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.DropDowns/scripts/sf-drop-down-list.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.DropDowns/scripts/sf-drop-down-tree.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.DropDowns/scripts/sf-list-box.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.DropDowns/scripts/sf-mention.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.DropDowns/scripts/sf-multi-select.min.js"></script>
    Syncfusion.AspNetCore.FileManager File Manager
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.FileManager/scripts/sf-file-manager.min.js"></script>
    Syncfusion.AspNetCore.Gantt Gantt
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.Gantt/scripts/sf-gantt.min.js"></script>
    Syncfusion.AspNetCore.Grid Grid
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.Grid/scripts/sf-grid.min.js"></script>
    Syncfusion.AspNetCore.HeatMap HeatMap
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.HeatMap/scripts/sf-heatmap.min.js"></script>
    Syncfusion.AspNetCore.ImageEditor Image Editor
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.ImageEditor/scripts/sf-image-editor.min.js"></script>
    Syncfusion.AspNetCore.InPlaceEditor In-place Editor
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.InPlaceEditor/scripts/sf-inplace-editor.min.js"></script>
    Syncfusion.AspNetCore.Inputs ColorPicker, MaskedTextBox, NumericTextBox, OTP Input, Rating, Signature, Slider, SpeechToText, TextArea, TextBox, Uploader
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.Inputs/scripts/sf-color-picker.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.Inputs/scripts/sf-maskedtextbox.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.Inputs/scripts/sf-numerictextbox.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.Inputs/scripts/sf-otp-input.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.Inputs/scripts/sf-rating.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.Inputs/scripts/sf-signature.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.Inputs/scripts/sf-slider.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.Inputs/scripts/sf-speech-to-text.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.Inputs/scripts/sf-textarea.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.Inputs/scripts/sf-textbox.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.Inputs/scripts/sf-uploader.min.js"></script>
    Syncfusion.AspNetCore.InteractiveChat AI AssistView, Chat UI, Inline AI Assist
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.InteractiveChat/scripts/sf-ai-assistview.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.InteractiveChat/scripts/sf-chat-ui.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.InteractiveChat/scripts/sf-inline-ai-assist.min.js"></script>
    Syncfusion.AspNetCore.Kanban Kanban
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.Kanban/scripts/sf-kanban.min.js"></script>
    Syncfusion.AspNetCore.Layouts Dashboard Layout, Splitter, Timeline
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.Layouts/scripts/sf-dashboard-layout.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.Layouts/scripts/sf-splitter.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.Layouts/scripts/sf-timeline.min.js"></script>
    Syncfusion.AspNetCore.LinearGauge Linear Gauge
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.LinearGauge/scripts/sf-linear-gauge.min.js"></script>
    Syncfusion.AspNetCore.Lists ListView
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.Lists/scripts/sf-list-view.min.js"></script>
    Syncfusion.AspNetCore.Maps Maps
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.Maps/scripts/sf-maps.min.js"></script>
    Syncfusion.AspNetCore.MultiColumnComboBox MultiColumn ComboBox
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.MultiColumnComboBox/scripts/sf-multicolumn-combobox.min.js"></script>
    Syncfusion.AspNetCore.Navigations Accordion, AppBar, Breadcrumb, Carousel, ContextMenu, Menu, Sidebar, Stepper, Tabs, Toolbar, TreeView
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.Navigations/scripts/sf-accordion.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.Navigations/scripts/sf-appbar.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.Navigations/scripts/sf-breadcrumb.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.Navigations/scripts/sf-carousel.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.Navigations/scripts/sf-context-menu.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.Navigations/scripts/sf-menu.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.Navigations/scripts/sf-sidebar.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.Navigations/scripts/sf-stepper.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.Navigations/scripts/sf-tab.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.Navigations/scripts/sf-toolbar.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.Navigations/scripts/sf-treeview.min.js"></script>
    Syncfusion.AspNetCore.Notifications Message, Skeleton, Toast
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.Notifications/scripts/sf-message.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.Notifications/scripts/sf-skeleton.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.Notifications/scripts/sf-toast.min.js"></script>
    Syncfusion.AspNetCore.PdfViewer PDF Viewer
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.PdfViewer/scripts/sf-pdfviewer.min.js"></script>
    Syncfusion.AspNetCore.PivotView Pivot Table, Pivot Field List
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.PivotView/scripts/sf-pivotview.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.PivotView/scripts/sf-pivotfieldlist.min.js"></script>
    Syncfusion.AspNetCore.Popups Dialog, Spinner, Tooltip
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.Popups/scripts/sf-dialog.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.Popups/scripts/sf-spinner.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.Popups/scripts/sf-tooltip.min.js"></script>
    Syncfusion.AspNetCore.ProgressBar Progress Bar
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.ProgressBar/scripts/sf-progressbar.min.js"></script>
    Syncfusion.AspNetCore.QueryBuilder Query Builder
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.QueryBuilder/scripts/sf-query-builder.min.js"></script>
    Syncfusion.AspNetCore.RangeNavigator Range Navigator
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.RangeNavigator/scripts/sf-range-navigator.min.js"></script>
    Syncfusion.AspNetCore.Ribbon Ribbon
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.Ribbon/scripts/sf-ribbon.min.js"></script>
    Syncfusion.AspNetCore.RichTextEditor Rich Text Editor
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.RichTextEditor/scripts/sf-rich-text-editor.min.js"></script>
    Syncfusion.AspNetCore.Sankey Sankey
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.Sankey/scripts/sf-sankey.min.js"></script>
    Syncfusion.AspNetCore.Schedule Schedule
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.Schedule/scripts/sf-schedule.min.js"></script>
    Syncfusion.AspNetCore.Smithchart Smith Chart
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.Smithchart/scripts/sf-smithchart.min.js"></script>
    Syncfusion.AspNetCore.Sparkline Sparkline
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.Sparkline/scripts/sf-sparkline.min.js"></script>
    Syncfusion.AspNetCore.SplitButtons DropDownButton, ProgressButton, SplitButton
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.SplitButtons/scripts/sf-drop-down-button.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.SplitButtons/scripts/sf-progress-button.min.js"></script>
    <script src="_content/Syncfusion.AspNetCore.SplitButtons/scripts/sf-split-button.min.js"></script>
    Syncfusion.AspNetCore.Spreadsheet Spreadsheet
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.Spreadsheet/scripts/sf-spreadsheet.min.js"></script>
    Syncfusion.AspNetCore.StockChart Stock Chart
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.StockChart/scripts/sf-stock-chart.min.js"></script>
    Syncfusion.AspNetCore.TreeGrid Tree Grid
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.TreeGrid/scripts/sf-treegrid.min.js"></script>
    Syncfusion.AspNetCore.TreeMap TreeMap
  • CSHTML
  • <script src="_content/Syncfusion.AspNetCore.TreeMap/scripts/sf-treemap.min.js"></script>

    Node Package Manager (NPM)

    A package in Node.js consists of a set of files needed for a JavaScript module which can be included in any web application. NPM is the popular package manager for both public and private packages.

    Syncfusion® NPM packages

    Scripts and style sheets of Syncfusion® ASP.NET Core controls can be included in an ASP.NET Core web application using NPM packages, since Syncfusion® publishes its ASP.NET Core controls as the scoped package in NPM.

    Installing NPM packages in ASP.NET Core Web Application

    1.Open the Source Explorer and right click the application name. Then, select “Add New Item” menu item to open the “Add New Item” window.

    Add New Item Window

    2.Select “Web” on the left side Tree View and select “npm configuration File” in “Add New Item” window which will include and configure “package.json” file in root folder of the ASP.NET Core web application.

    Adding package.json

    3.Open the Source Explorer and right click on the application name. Then, select “Open Folder in File Explorer”.

    4.Open the Command Prompt for this location and install the required Syncfusion® packages using “npm install @syncfusion/{PACKAGE_NAME} –save

    npm install @syncfusion/ej2-calendars --save

    5.Installed packages with all its dependencies can be found under the “node_modules” folder as shown in the following image.

    Installed Syncfusion Packages

    From Installed Packages

    Scripts and style sheets of Syncfusion® ASP.NET Core controls from locally-installed packages can be included in an ASP.NET Core web application using the following two methods.

    NOTE

    Files in the wwwroot folder can be accessed only in client-side, hence Syncfusion® scripts and style sheets should be copied from node_modules to wwwroot.

    By using either one of the following methods, Client-Side Resource can be loaded in ASP.NET Core web application:

    1. Copying scripts and styles using gulp
    2. Generating scripts and styles using CRG (Custom Resource Generator)

    Copying by Gulp

    Install required Syncfusion® ASP.NET Core control packages as mentioned in “Installing NPM Packages in ASP.NET Core Web Application”.

    1.In addition to Syncfusion® ASP.NET Core packages, install gulp and glob packages using below commands.

    NOTE

    Gulp Installation - npm install gulp –save

    npm install gulp@latest --save

    NOTE

    Glob Installation - npm install glob –save

    npm install glob@latest --save

    2.To set up the server, open Dependencies -> Manage NuGet Packages -> Browse. Then, search and install “Microsoft.AspNetCore.StaticFiles -V2.2.0” and “Microsoft.TypeScript.MSBuild -V3.8.3” packages.

    Install NuGet Packages

    Open up your “Startup.cs” file and edit your Configure function to looks like the below code snippet.

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        app.UseDefaultFiles();
        app.UseStaticFiles();
    }

    Restart Visual Studio for the red squiggly lines below “UseDefaultFiles” and “UseStaticFiles” to disappear.

    3.Open the Source Explorer and right click on the application name. Then, select “Add New Item” menu item to open the “Add New Item” window.

    4.Select “ASP.NET Core” on the left side Tree View and select “JavaScript File” in the “Add New Item” window. It will include a js file in the root folder of the ASP.NET Core web application. Rename the js file as “gulpfile.js”.

    Add gulpjs file

    5.Copy the following code snippet and paste it in gulpfile.js for automatically copying the script and styles from “node_modules” to “wwwroot” while building the web application.

    /// <binding BeforeBuild='copy-client-resource'/>
    // nodejs requiring statement for importing and using the package in this js file
    var gulp = require('gulp');
    var glob = require('glob');
    // gulp task for copying file form “node_modules” to “wwwroot” directory
    gulp.task("copy-client-resource", function (done) {
        let packagePath = './node_modules/@syncfusion/';
        let destCommonPath = 'wwwroot/syncfusion'
        let installedPackages = glob.sync(`${packagePath}*`);
        for (let insPackage of installedPackages) {
            let packagename = insPackage.replace(packagePath, '');
            gulp.src(`${insPackage}/dist/global/**/*`)
                .pipe(gulp.dest(`${destCommonPath}/${packagename}/`));
            gulp.src(`${insPackage}/styles/**/*.css`)
                .pipe(gulp.dest(`${destCommonPath}/${packagename}/styles/`));
        }
        done();
    });

    6.Build the ASP.NET Core web application and notice that a new folder named “Syncfusion” is created in “wwwroot” folder.

    Copied to wwwroot

    7.Add the client-side resource in the <head> element of the ~/Views/Shared/_Layout.cshtml. Here, scripts and styles of Syncfusion® ASP.NET Core Calendar has been loaded for example.

    <head>
        <!-- Syncfusion ASP.NET Core controls styles -->
        <link rel="stylesheet" href="~/syncfusion/ej2-calendars/styles/calendar/material.css" />
        <link rel="stylesheet" href="~/syncfusion/ej2-base/styles/material.css" />
        <link rel="stylesheet" href="~/syncfusion/ej2-buttons/styles/button/material.css" />
        <!-- Syncfusion ASP.NET Core controls scripts -->
        <script src="~/syncfusion/ej2-base/ej2-base.min.js"></script>
        <script src="~/syncfusion/ej2-calendars/ej2-calendars.min.js"></script>
    </head>

    CDN Reference

    Syncfusion® hosts every ASP.NET Core control package on CDN, from which scripts and stylesheets can be loaded. For detailed CDN URLs, individual control CDN references, and CDN fallback configuration, refer to the CDN Reference page.

    Custom Resource Generator

    The Syncfusion® ASP.NET Core provides an option to generate a control’s scripts using the Custom Resource Generator (CRG) tool. Refer here for details.

    See also