Мое приложение написано в Asp.Net MVC3 и написано на C # .Net.
У меня есть представления, которые содержат DropDownList. Эти DropDownlist заполняются из определенного мастера.
Ниже код моего контроллера.
[HttpPost]
public ActionResult TestCreate(MainMaster Testmaster)
{
var recExists= from c in db.MainMaster
where c.CityName == Testmaster.CityName && c.StateID==Testmaster.StateID
select c;
if (nid.Count()>0)
{
ModelState.AddModelError("", "This City Already Exists");
}
if (ModelState.IsValid)
{
db.MainMaster.Add(Testmaster);
db.SaveChanges();
return RedirectToAction("Index");
}
else
{
return View(Testmaster);
}
}
Я получаю сообщение об ошибке только тогда, когда пытаюсь ввести Дублирующую запись. Пример: Если уже существует город с именем Мумбаи штата Махараштра, и я все еще пытаюсь ввести запись в Мумбаи, Махараштра. Я не могу показать сообщение об ошибке ModelState.AddModelError("", "This City Already Exists");
. Скорее я получаю ошибку System.ArgumentNullException: Value cannot be null.
.
Ниже код моего просмотра.
@Html.DropDownList("CountryID", new SelectList(ViewBag.CountryIDies as System.Collections.IEnumerable, "CountryID", "CountryName"), new { id="Country" })
Это мой DropDownlist, и я получаю сообщение об ошибке в той же строке.
Этот код прекрасно работает, когда я использую его в тех представлениях, которые не содержат DropDownList.
Я отладил и проверил значения в Testmaster , что дает правильное значение выбранного комбо.
Также я проверил свойство ViewBag, передающее значение в DropDownList. Оно передает все состояния в раскрывающийся список.