Исключение ArgumentNull было обработано кодом пользователя в MVC3 - PullRequest
1 голос
/ 03 января 2012

Мое приложение написано в 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. Оно передает все состояния в раскрывающийся список.

1 Ответ

1 голос
/ 14 января 2012

Когда компилятор достигал

ModelState.AddModelError("", "This City Already Exists");

, он был удален. Но мой @Html.DropDownList("CountryID", new SelectList(ViewBag.CountryIDies as System.Collections.IEnumerable, "CountryID", "CountryName"), new { id="Country" }) не имел никакого значения.Чтобы преодолеть это, я добавил

   ViewBag.CountryID = new SelectList(db.CountryMasters, "CountryID", "CountryName");

И проблема была решена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...