public class HomeController : Controller { private readonly ILogger _logger; private readonly ApplicationDbContext _context; public HomeController(ILogger logger, ApplicationDbContext applicationDbContext) { _logger = logger; _context = applicationDbContext; } public IActionResult ItemIndex() { return View(_context.Items.Select(c => new ItemViewModel() { ItemID = c.ItemID, ItemName = c.ItemName, CategoryName = c.Category.CategoryName }).ToList()); } public IActionResult CreateItem() { var categories = _context.Categories.Select(c => new SelectListItem() { Value = c.CategoryId.ToString(), Text = c.CategoryName }).ToList(); categories.Add(new SelectListItem() { Value = "new", Text = "Add New Category" }); ViewBag.Categories = categories; return View(); } [HttpPost] public IActionResult CreateItem(Item item) { if (ModelState.IsValid) { _context.Items.Add(item); _context.SaveChanges(); return RedirectToAction(nameof(ItemIndex)); } return View(); } //this method is used to add new category via Ajax [HttpPost] public IActionResult AddCategory(string newcategory) { var newitem = new Category() { CategoryName = newcategory }; _context.Categories.Add(newitem); _context.SaveChanges(); return Json(_context.Categories.Select(c => new SelectListItem() { Value = c.CategoryId.ToString(), Text = c.CategoryName }).ToList()); }