#Expected Output 
#Controller Code(TestController.cs)
  
#Model (CountryAndStateVM.cs) 
 # View (Index.cshtml)
#Controller Code(TestController.cs)
using MVCTutorial.Models;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Net;
using System.Threading;
using System.Web;
using System.Web.Mvc;
namespace MVCTutorial.Controllers
{
    public class TestController : Controller
    {
        public ActionResult Index()
        {
            ViewBag.CountryList = new SelectList(GetCountryList(),"CountryId","CountryName");
            return View();
        }
     
        public List<Country> GetCountryList()
        {
            MVCTutorialEntities db = new MVCTutorialEntities();
            List<Country> countries = db.Countries.ToList();
            return countries;
        }
        public ActionResult GetStateList(int CountryId)
        {
            MVCTutorialEntities db = new MVCTutorialEntities();
            List<State> stateList = db.States.Where(x => x.CountryId == CountryId).ToList();
            ViewBag.StateOptions = new SelectList(stateList, "StateId", "StateName");
            return PartialView("StateOptionPartial");
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace MVCTutorial.Models
{
    public class CountryAndStateVM
    {
        public int CountryId { get; set; }
        public int StateId { get; set; }
    }
}
@model MVCTutorial.Models.CountryAndStateVM
@{
    ViewBag.Title = "Index";
    // Layout = null;
}
<div class="panel panel-body" style="min-height:256px">
    @*<div class="col-md-3">
        @{ Html.RenderAction("SideMenu", "Test");}
    </div>*@
    <div class="col-md-9">
        @if (ViewBag.CountryList != null)
        { 
         @Html.DropDownListFor(m => m.CountryId, ViewBag.CountryList as SelectList, "-- Select Country--", new { @class="form-control"})
         
        }
        @Html.DropDownListFor(m => m.StateId, new SelectList(""), "--Select State--", new { @class = "form-control" })
    </div>
</div>
<script>
    $(document).ready(function () {
        $("#CountryId").change(function () {
            var countryId = $(this).val();
            debugger
            $.ajax({
                type: "Post",
                url: "/Test/GetStateList?CountryId=" + countryId,
                contentType:"html",
                success: function (response) {
                  debugger
                    $("#StateId").empty();
                    $("#StateId").append(response);
                }
            })
        })
    })
</script>
 # Partial View (StateOptionPartial.cshtml)
<option value="">--Select State--</option>
@if (ViewBag.StateOptions != null)
{
    
    foreach (var item in ViewBag.StateOptions) { 
    
      <option value="@item.Value">@item.Text </option>
    
    }
}
USE [MVCTutorial] GO /****** Object: Table [dbo].[Country] Script Date: 13-03-2017 17:06:59 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[Country]( [CountryId] [int] IDENTITY(1,1) NOT NULL, [CountryName] [varchar](100) NULL, CONSTRAINT [PK_Country] PRIMARY KEY CLUSTERED ( [CountryId] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO SET ANSI_PADDING OFF GO /****** Object: Table [dbo].[State] Script Date: 13-03-2017 17:07:00 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[State]( [StateId] [int] IDENTITY(1,1) NOT NULL, [StateName] [varchar](100) NULL, [CountryId] [int] NULL, CONSTRAINT [PK_State] PRIMARY KEY CLUSTERED ( [StateId] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO SET ANSI_PADDING OFF GO SET IDENTITY_INSERT [dbo].[Country] ON GO INSERT [dbo].[Country] ([CountryId], [CountryName]) VALUES (1, N'India') GO INSERT [dbo].[Country] ([CountryId], [CountryName]) VALUES (2, N'United States') GO SET IDENTITY_INSERT [dbo].[Country] OFF GO SET IDENTITY_INSERT [dbo].[State] ON GO INSERT [dbo].[State] ([StateId], [StateName], [CountryId]) VALUES (1, N'Delhi', 1) GO INSERT [dbo].[State] ([StateId], [StateName], [CountryId]) VALUES (2, N'Uttar Pradesh', 1) GO INSERT [dbo].[State] ([StateId], [StateName], [CountryId]) VALUES (3, N'Punjab', 1) GO INSERT [dbo].[State] ([StateId], [StateName], [CountryId]) VALUES (4, N'Haryana', 1) GO INSERT [dbo].[State] ([StateId], [StateName], [CountryId]) VALUES (5, N'Bihar', 1) GO INSERT [dbo].[State] ([StateId], [StateName], [CountryId]) VALUES (7, N'California', 2) GO INSERT [dbo].[State] ([StateId], [StateName], [CountryId]) VALUES (8, N'Texas', 2) GO INSERT [dbo].[State] ([StateId], [StateName], [CountryId]) VALUES (9, N'New York', 2) GO INSERT [dbo].[State] ([StateId], [StateName], [CountryId]) VALUES (10, N'Michigan', 2) GO INSERT [dbo].[State] ([StateId], [StateName], [CountryId]) VALUES (11, N'Virginia', 2) GO INSERT [dbo].[State] ([StateId], [StateName], [CountryId]) VALUES (12, N'New Jersey', 2) GO SET IDENTITY_INSERT [dbo].[State] OFF GO ALTER TABLE [dbo].[State] WITH CHECK ADD CONSTRAINT [FK_State_Country] FOREIGN KEY([CountryId]) REFERENCES [dbo].[Country] ([CountryId]) GO ALTER TABLE [dbo].[State] CHECK CONSTRAINT [FK_State_Country] GO
All Code Factory
- Part 11- Insert data into database
 - Part 12- Server side and clientside validation
 - Part 13- Insert data into multiple tables
 - Part 14- Insert data into database using JQuery
 - Part 15- How to create Bootstrap Popup
 - Part 16- Delete operation in Asp.net MVC
 - Part 17- What is Partial View in Asp.net MVC
 - Part 18- How to call Partial View using JQuery
 - Part 19- Difference between Html.Partial() and Html.RenderPartial()
 - Part 20- AddEdit Record using Partial View
 - Part 21- Layout View in Asp.net MVC
 - Part 22- Style.Render and Script.Render
 - Part 23 - RenderBody, RenderSection and RenderPage.
 - Part 24- Divide Page into several component using Bootstrap
 - Part 25- Refresh Entity framework after any modification in database table
 - Part 26- Set foreign key relationnship in database tables
 - Part 27- Create Rgistration Page
 - Part 28- Create Login Page
 - Part 29- Client Side Validation using JQuery
 - Part 30- How to return multiple Model to a View (Interview)
 - Part 31- How to create Dynamic Menu using Partial View
 - Part 32- Preview Image Before Uploading
 - Part 33- Upload and Display Image using JQuery
 - Part 34-Upload Image to SQL Server and Display
 - Part 35- Download Image from URL and Upload to SQL Server
 - Part 36- Cascading DropdownList
 - Part 37- Implement Search Functionality
 - Part 38- Attribute Routing in MVC
 - Part 39- How to display multiple checkbox checked data
 - Part 40- How to send multiple checkbox checked value to Server
 - Part 41- How to create responsive sortable Image Gallery
 - Part 42 - How to implement JQuery Autocomplete Textbox
 - Part 43 - How to send Emails in Asp.net MVC
 - Part 44 - Integrate JQuery DataTables plugin
 - Part 45 - Display record from database using JQuery Datatable
 - Part 46- Add Edit Record using JQuery DataTable
 - Part 47 - JQuery DataTables Server -side Processing
 - Part 48 - JQuery server side processing -Search functionality
 - Part 49 - Pagination using Skip and Take method
 - Part 50 - Refresh DataTable After Performing Any Action
 - Part 51 - Send OTP ( One Time Password ) to any mobile device
 - Part 52 - How to use AutoMapper in Asp.net MVC
 - Part 53 - How to use AutoMapper ForMember Method
 - Part 54 - Repository Pattern - 1 - Adding Business Layer
 - Part 55 - Repository Pattern - 2 - Adding Domain Layer
 - Part 56 - Repository Pattern - 3 - Dependency Injection
 - Part 57- Repository Pattern- 4 - Adding Data Access Layer
 - Part 58 - Repository Pattern - 5 - Setting Up Generic Repository
 - Part 59 - Display Record using repository pattern
 - Part 60 - Add Edit Record using Repository Pattern
 
3 comments:
Thank you for the videos, do you have anything on blog and comments? I am trying to create a blog but failed to do the commenting functionality following your posts. hatah01@gmail.com
Hola Ashish, no entendà como sacaste la clase "countries" en el método GetCountryList(),
al parecer no la sugiere el db context... Saludos!
Thanks for the awesome tutorial.
I have also written an articleon same topic.
Post a Comment