I have this code to check Duplicate Entries for Cities.
public ActionResult Create(City city)
{
var CityCheck= context.Cities.Where(u => u.CityName == city.CityName && u.ContId = city.ContId).FirstOrDefault();
if (CityCheck == null)
{
context.Cities.Add(city);
}
else
{
ModelState.AddModelError("CityName", "City name already exists.");
}
if (ModelState.IsValid)
{
context.Cities.Add(city);
// rest of Code
context.SaveChanges(city);
return RedirectToAction("Index");
}
ViewBag.PossibleCountries = context.Countries.Where(f => f.IsActive == true && f.IsDeleted == false).ToList();
return View(city);
}
It Works Perfectly fine, Here is my Edit ActioneResult Method.
[HttpPost]
public ActionResult Edit(City city)
{
var CityCheck = context.Cities.Where(u => u.CityName == city.CityName && u.ContId == city.ContId).FirstOrDefault();
if (CityCheck == null)
{
context.Entry(city).State = EntityState.Modified;
}
else
{
ModelState.AddModelError("CityName", "City name already exists.");
}
if (ModelState.IsValid)
{
//Rest Of Code
context.Entry(city).State = EntityState.Modified;
return RedirectToAction("Index");
}
ViewBag.PossibleCountries = context.Countries.Where(f => f.IsActive == true && f.IsDeleted == false).ToList();
return View(city);
}
It Works fine too, While editing when I Click on Save button with out making any changes. It validates me to Save as "City Name Already Exist" All I want to do is that: It should not let user proceed when user wants to edit and save city with existing name. But should let the user proceed when he click on "SAVE" without making any changes. I am using ASP.NET MVC 4 and EF 4. Thanks In Advance