私のアプリケーションはAsp.Net MVC3でC#.Netでコーディングされています。 私はDropDownListを含むビューを持っています。これらのDropDownlistは特定のマスターから取り込まれます。 以下は私のコントローラコードです。ArgumentNull例外はMVC3のユーザーコードによって処理されました
[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);
}
}
私が重複レコードを入力しようとしているときにのみエラーが表示されます。 例: State MaharashtraのMumbaiという都市があり、まだMumbai、Maharashtraでレコードを入力しようとしています。エラーメッセージ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の値をデバッグしてチェックしました。これは、選択したコンボの正しい値を与えています。 また、DropDownList.Itsに値を渡しているViewBagプロパティをチェックして、すべての状態をドロップダウンリストに渡しました。