eCommerce Website Part 12 City Table

 eCommerce Website  Part 12 City Table

Hi, Dear's here we learn how to implement eCommerce Website in Visual Studio using C# ASP.NET MVC. Ilyasoft software company provide full project step by step training on our YouTube Channel ilyasoft software company so now subscribe, share and like for more project base tutorials



In this video we are going to implement CityTable form for more details click here: watch vedio

First Download Materials Download Materials.

Create BasicConfigurationController and create one by one below action's:

 > City Table Action Code

      Action  Code :  

        public ActionResult Cities_List()
        {
            var list = new List<CityMV>();
            foreach (var city in DB.CityTables.ToList())
            {
                var country = DB.CountryTables.Find(city.CountryID);
                list.Add(new CityMV()
                {
                    CountryID = city.CountryID,
                    CityID = city.CityID,
                    CityName = city.CityName,
                    CountryName = country.CountryTitle
                });
            }
            return View(list);
        }

        public ActionResult NewCity()
        {
            ViewBag.CountryID = new SelectList(DB.CountryTables.ToList(), "CountryID", "CountryTitle", "0");
            return View(new CityMV());
        }

        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult NewCity(CityMV cityMV)
        {
            if (ModelState.IsValid)
            {
                var check_exist = DB.CityTables.Where(a => a.CityName == cityMV.CityName.Trim() && a.CountryID == cityMV.CountryID).FirstOrDefault();
                if (check_exist == null)
                {
                    var city = new CityTable();
                    city.CityName = cityMV.CityName;
                    city.CountryID = cityMV.CountryID;
                    DB.CityTables.Add(city);
                    DB.SaveChanges();
                    return RedirectToAction("Cities_List");
                }
                else
                {
                    ModelState.AddModelError("CityName", "Already Registered.");
                }
            }
            ModelState.AddModelError("CityName", "Required Field");
            ViewBag.CountryID = new SelectList(DB.CountryTables.ToList(), "CountryID", "CountryTitle", cityMV.CountryID);
            return View(cityMV);
        }

        public ActionResult EditCity(int? id)
        {
            var getcity = DB.CityTables.Find(id);
            var editcity = new CityMV();
            editcity.CountryID = getcity.CountryID;
            editcity.CityID = getcity.CityID;
            editcity.CityName = getcity.CityName;
            ViewBag.CountryID = new SelectList(DB.CountryTables.ToList(), "CountryID", "CountryTitle", editcity.CountryID);
            return View(editcity);
        }

        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult EditCity(CityMV cityMV)
        {
            if (ModelState.IsValid)
            {
                var check_exist = DB.CityTables.Where(a => a.CityName == cityMV.CityName.Trim() && a.CityID != cityMV.CityID && a.CountryID == cityMV.CountryID).FirstOrDefault();
                if (check_exist == null)
                {
                    var city = DB.CityTables.Find(cityMV.CityID);
                    city.CityName = cityMV.CityName;
                    city.CountryID = cityMV.CountryID;
                    DB.Entry(city).State = System.Data.Entity.EntityState.Modified;
                    DB.SaveChanges();
                    return RedirectToAction("Cities_List");
                }
                else
                {
                    ModelState.AddModelError("CityName", "Already Registered.");
                }
            }
            ModelState.AddModelError("CityName", "Required Field");
            ViewBag.CountryID = new SelectList(DB.CountryTables.ToList(), "CountryID", "CountryTitle", cityMV.CountryID);
            return View(cityMV);
        }

> City Table All Views Code       
   City List View Code:
@model IEnumerable<eCommerceUI.Models.CityMV>
@{
    ViewBag.Title = "List";
}
<div class="container">
    <div class="page-width">
        <h3 class="docs-title">Cities List</h3>
        <p>
            @Html.ActionLink("New City", "NewCity", null, new { @class = "btn btn--secondary" })
        </p>
        <div class="table-wrap">
            <table class="responsive-table">
                <thead>
                    <tr>
                        <th>@Html.DisplayNameFor(model => model.CityID)</th>
                        <th>@Html.DisplayNameFor(model => model.CountryName)</th>
                        <th>@Html.DisplayNameFor(model => model.CityName)</th>
                        <th>Action</th>
                    </tr>
                </thead>
                <tbody>
                    @foreach (var item in Model)
                    {
                        <tr class="responsive-table-row">
                            <td>#@Html.DisplayFor(modelItem => item.CityID)</td>
                            <td>@Html.DisplayFor(modelItem => item.CountryName)</td>
                            <td>@Html.DisplayFor(modelItem => item.CityName)</td>
                            <td>
                                @Html.ActionLink("Edit", "EditCity", new { id = item.CityID }, new { @class = "btn" })
                            </td>
                        </tr>
                    }
                <tbody>
            </table>
        </div>
    </div>
</div>

   New City View Code :  

     @model eCommerceUI.Models.CityMV
@{
    ViewBag.Title = "Add";
}
<div class="container">
    <div class="page-width">
        @using (Html.BeginForm("NewCity", "BasicConfiguration"))
        {
            @Html.AntiForgeryToken()

            <h3 class="docs-title">New City</h3>
            <hr />
            <div class="form-horizontal">
                @Html.ValidationSummary(true, "", new { @class = "text-danger" })
                <div class="form-group">
                    @Html.LabelFor(model => model.CountryID, "CountryID", htmlAttributes: new { @class = "control-label col-md-2" })
                    <div class="col-md-10">
                        @Html.DropDownList("CountryID", null, htmlAttributes: new { @class = "form-control" })
                        @Html.ValidationMessageFor(model => model.CountryID, "", new { @class = "text-danger" })
                    </div>
                </div>

                <div class="form-group">
                    @Html.LabelFor(model => model.CityName, htmlAttributes: new { @class = "control-label col-md-2" })
                    <div class="col-md-10">
                        @Html.EditorFor(model => model.CityName, new { htmlAttributes = new { @class = "form-control" } })
                        @Html.ValidationMessageFor(model => model.CityName, "", new { @class = "text-danger" })
                    </div>
                </div>

                <div class="form-group">
                    <div class="col-md-offset-2 col-md-10">
                        <input type="submit" value="Create" class="btn btn--secondary" />
                        @Html.ActionLink("Back to List", "Cities_List", null, new { @class = "btn" })
                    </div>
                </div>
            </div>
        }
    </div>
</div>

 Edit City View  Code :  

@model eCommerceUI.Models.CityMV
@{
    ViewBag.Title = "Add";
}
<div class="container">
    <div class="page-width">
        @using (Html.BeginForm("EditCity", "BasicConfiguration"))
        {
            @Html.AntiForgeryToken()

            <h3 class="docs-title">New City</h3>
            <hr />
            <div class="form-horizontal">
                @Html.ValidationSummary(true, "", new { @class = "text-danger" })
                @Html.HiddenFor(model=>model.CityID)
                <div class="form-group">
                    @Html.LabelFor(model => model.CountryID, "CountryID", htmlAttributes: new { @class = "control-label col-md-2" })
                    <div class="col-md-10">
                        @Html.DropDownList("CountryID", null, htmlAttributes: new { @class = "form-control" })
                        @Html.ValidationMessageFor(model => model.CountryID, "", new { @class = "text-danger" })
                    </div>
                </div>

                <div class="form-group">
                    @Html.LabelFor(model => model.CityName, htmlAttributes: new { @class = "control-label col-md-2" })
                    <div class="col-md-10">
                        @Html.EditorFor(model => model.CityName, new { htmlAttributes = new { @class = "form-control" } })
                        @Html.ValidationMessageFor(model => model.CityName, "", new { @class = "text-danger" })
                    </div>
                </div>

                <div class="form-group">
                    <div class="col-md-offset-2 col-md-10">
                        <input type="submit" value="Create" class="btn btn--secondary" />
                        @Html.ActionLink("Back to List", "Cities_List", null, new { @class = "btn" })
                    </div>
                </div>
            </div>
        }
    </div>
</div>

Comments