Getting Started with the ASP.NET MVC Bullet Chart Control
22 Jul 20265 minutes to read
This section briefly explains how to add the Syncfusion® ASP.NET MVC Bullet Chart control to an ASP.NET MVC 5 (.NET Framework) application using Visual Studio.
Prerequisites
Refer to the System requirements for ASP.NET MVC controls before creating the application.
Create an ASP.NET MVC application with HTML helper
You can create an ASP.NET MVC application using either of the following options:
Install the ASP.NET MVC NuGet package
To add Syncfusion® ASP.NET MVC controls in the application, open the NuGet Package Manager in Visual Studio by selecting Tools → NuGet Package Manager → Manage NuGet Packages for Solution. Search for Syncfusion.EJ2.MVC5 and install it.
Alternatively, you can use the Package Manager Console by navigating to Tools → NuGet Package Manager → Package Manager Console, and then run the following command:
Install-Package Syncfusion.EJ2.MVC5 -Version 34.1.29NOTE
Syncfusion® ASP.NET MVC controls are available on nuget.org. Refer to the NuGet packages topic to learn more about installing NuGet packages in various operating system environments. The
Syncfusion.EJ2.MVC5NuGet package depends on Newtonsoft.Json (≥ 12.0.2) for JSON serialization and Syncfusion.Licensing for validating the Syncfusion® license key.
Add the namespace
Add the Syncfusion.EJ2 namespace reference inside the <system.web.webPages.razor> → <pages> → <namespaces> element of the ~/Views/Web.config file.
<namespaces>
<add namespace="Syncfusion.EJ2" />
</namespaces>Add script resources
Add the script reference inside the <head> element of the ~/Views/Shared/_Layout.cshtml file as follows. The reference loads the base ej2.min.js bundle, which contains the Syncfusion® ASP.NET MVC helper scripts.
<head>
...
<!-- Syncfusion ASP.NET MVC controls scripts -->
<script src="https://cdn.syncfusion.com/ej2/34.1.29/dist/ej2.min.js"></script>
</head>NOTE
Refer to the Adding Script Reference topic to learn different approaches for adding script references in an ASP.NET MVC application.
Register the Syncfusion® Script Manager
Register the script manager EJS().ScriptManager() at the end of the <body> element in the ~/Views/Shared/_Layout.cshtml file as follows. The Script Manager resolves and loads control-specific scripts automatically.
<body>
...
<!-- Syncfusion ASP.NET MVC Script Manager -->
@Html.EJS().ScriptManager()
</body>## Build the Bullet Chart
This section walks through adding the Bullet Chart control to ~/Views/Home/Index.cshtml and progressively binding data to it from ~/Controllers/HomeController.cs.
Step 1: Add the Bullet Chart control
Add the Syncfusion® ASP.NET MVC Bullet Chart control to the ~/Views/Home/Index.cshtml page.
@Html.EJS().BulletChart("container").Render()Press Ctrl + F5 on Windows or ⌘ + F5 on macOS to run the application. The Bullet Chart control will be rendered as an empty placeholder in the default web browser.

Step 2: Bind data to the chart
Define a BulletChartData model in ~/Controllers/HomeController.cs that exposes the value and target numeric properties. Map those property names to the ValueField and TargetField properties of the Bullet Chart, and pass the list as the view model.
@model List<BulletChartSample.Controllers.BulletChartData>
@(Html.EJS().BulletChart("container")
.ValueField("value")
.TargetField("target")
.Minimum(0).Maximum(300).Interval(50)
.DataSource(Model)
.Render())public ActionResult Index()
{
List<BulletChartData> data = new List<BulletChartData>
{
new BulletChartData { value = 270, target = 250}
};
return View(data);
}
public class BulletChartData
{
public double target;
public double value;
}NOTE
Explore the ASP.NET MVC Bullet Chart sample on GitHub to understand how this getting started example works.
Troubleshooting
If the Bullet Chart control does not render as expected, review the following common issues and their resolutions.
-
“Script Manager is not defined” or scripts run twice —
@Html.EJS().ScriptManager()was not added, or was added more than once. EnsureScriptManageris registered exactly once at the end of<body>in_Layout.cshtml. -
Chart renders but no data points appear —
ValueField/TargetFielddo not match the property names in the data source. Property names are case-sensitive; verify they match the model property names exactly (e.g.,value,target). -
CS0206: A non-property cannot have an accessororCS0103: The name 'value' does not exist—BulletChartDatawas declared with public fields (public double value;) and then initialized using object-initializer syntax that requires properties. Change the fields to auto-properties (public double value { get; set; }). -
Newtonsoft.Jsonreference error after upgrade —Syncfusion.EJ2.MVC5requiresNewtonsoft.Json≥ 12.0.2. Install a compatible version via NuGet.