2012-01-03 10 views
1

私のアプリケーションは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プロパティをチェックして、すべての状態をド​​ロップダウンリストに渡しました。

答えて

1

コンパイラは

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

に達したとして、それは私の@Html.DropDownList("CountryID", new SelectList(ViewBag.CountryIDies as System.Collections.IEnumerable, "CountryID", "CountryName"), new { id="Country" })はそれで任意の値を持っていなかったdisposed.Henceました。これを克服する 私は

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

を追加し、問題が並べ替えられました。

関連する問題