Introduction:

In this article we will learn how to bind DropDownList from database in asp.net core MVC razor page with Entity framework.

Description:

Now here we are going to bind DropDownList from database in ASP.NET Core MVC, using Entity Framework Core with example.  

Now let’s create a demo to bind DropDownList from database in asp.net core MVC.

Create table following below script:

CREATE TABLE country
(
  ID BIGINT IDENTITY(1,1) PRIMARY KEY,
  Name VARCHAR(150)
)

 

Insert data in table following below script:

USE [collage]
GO
SET IDENTITY_INSERT [dbo].[country] ON
 
INSERT [dbo].[country] ([ID], [Name]) VALUES (1, N'India')
INSERT [dbo].[country] ([ID], [Name]) VALUES (2, N'Afghanistan')
INSERT [dbo].[country] ([ID], [Name]) VALUES (3, N'Australia')
INSERT [dbo].[country] ([ID], [Name]) VALUES (4, N'Germany')
INSERT [dbo].[country] ([ID], [Name]) VALUES (5, N'Iran')
INSERT [dbo].[country] ([ID], [Name]) VALUES (6, N'Iraq')
INSERT [dbo].[country] ([ID], [Name]) VALUES (7, N'Japan')
INSERT [dbo].[country] ([ID], [Name]) VALUES (8, N'Lesotho')
INSERT [dbo].[country] ([ID], [Name]) VALUES (9, N'Lithuania')
INSERT [dbo].[country] ([ID], [Name]) VALUES (10, N'Spain')
SET IDENTITY_INSERT [dbo].[country] OFF

 

 Now write following code in index.cshtml.

@model AspdotNetCoreMvc.Models.Student
@{
   ViewData["Title"] = "Home Page";
}
 <div class="top-buffer"></div>
<div class="col-md-4"> 
   <form asp-controller="Home" asp-action="Index" method="post">
       <div class="row">
            <div class="col-md-12">
                <label asp-for="Name"></label>
                <input asp-for="Name" class="form-control" />
            </div>
       </div>
       <div class="row">
            <div class="col-md-12">
                <label asp-for="Address"></label>
                <input asp-for="Address" class="form-control" />
            </div>
       </div>
       <div class="row">
            <div class="col-md-12">
                <label asp-for="Country"></label>
                <select asp-for="Country"  class="form-control"
                        asp-items="@(new SelectList(@ViewBag.countries,"Id", "Name"))"></select>
            </div>
       </div>
              <br /><button type="submit">Register</button>
    </form>
</div>

 

 

 Now write the following code in HomeController.

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using AspdotNetCoreMvc.Models;
 
namespace AspdotNetCoreMvc.Controllers
{
    public class HomeController : Controller
    {
        collageContext context = new collageContext();
        public IActionResult Index()
        {
            ViewBag.countries =context.Country.ToList();
            Student student = new Student();
             return View(student);
        }
        [HttpPost]
        public IActionResult Index(Student student)
        {
            ViewBag.countries =context.Country.ToList();
           
            return View(student);
        }
    }
}

 

 

Now build and run the application using CTRL + 5. It should bring up the following page.

 

how to bind dropdownlist in mvc core from database using entity framework

Figure 1: ASP.NET Core MVC DropDown

 

Now fill all fields name, address and country then click to register button your data submitted to server as shown in the following figure below:

 how to bind dropdownlist in mvc core from database using entity framework

 

I hope it will help to you.

0 comments


Leave a comment

Make sure you enter the (*) required information where indicated. HTML code is not allowed.

you may also like