title: There is no ViewData item of type 'IEnumerable<SelectListItem>' only when error on submitting form
body: <p>I have a drop down list that gets populated from</p>
  
  <p>ViewModel:</p>
  
  <pre><code>public class OrgPages
  {
      public int ID { get; set; }
      public string URL { get; set; }
  }
  </code></pre>
  
  <p>Helper:</p>
  
  <pre><code>   public SelectList PageList()
      {
          var pagelist = new List&lt;OrgPages&gt;();
  
          foreach (var count in Enumerable.Range(1, 10))
          {
              var pages = new OrgPages();
  
              pages.ID = count;
  
              if(count == 1)
                  pages.URL = "Done";
              else if (count == 2)
                  pages.URL = "Address";
              else if (count == 3)
                  pages.URL = "Import/Export";
              else if (count == 4)
                  pages.URL = "Membership";
              else if (count == 5)
                  pages.URL = "Business Type";
              else if (count == 6)
                  pages.URL = "Industry Type";
              else if (count == 7)
                  pages.URL = "Phone Number";
              else if (count == 8)
                  pages.URL = "Email";
              else if (count == 9)
                  pages.URL = "Website";
              else if (count == 10)
                  pages.URL = "Note";
              pagelist.Add(pages);
          }
          return new SelectList(pagelist, "ID", "URL", 0);            
      }
  </code></pre>
  
  <p>In my controller I initiate my helper:</p>
  
  <pre><code>private DropDownPopulatorController ddp = new DropDownPopulatorController();
  </code></pre>
  
  <p>And in my create action, not the post, I call the ViewBag:</p>
  
  <pre><code>ViewBag.OrgPages = ddp.PageList();
  </code></pre>
  
  <p>In my HTTP POST create action I pass the OrgPages value:</p>
  
  <pre><code>[HttpPost]
  public ActionResult Create(OrganizationEmail email, int OrgPages)
  {
      try
      {
          // TODO: Add insert logic here
          using (var db = new VAGTCEntities())
          {
              db.OrganizationEmails.Add(email);
              db.SaveChanges();
          }
          if (OrgPages == 2)
              return RedirectToAction("Create", "OrgAddress");
          else if (OrgPages == 3)
              return RedirectToAction("Create", "OrgIE");
          else if (OrgPages == 4)
              return RedirectToAction("Create", "OrgMembership");
          else if (OrgPages == 5)
              return RedirectToAction("Create", "OrgBusinessType");
          else if (OrgPages == 6)
              return RedirectToAction("Create", "OrgIndustryType");
          else if (OrgPages == 7)
              return RedirectToAction("Create", "OrgPhone");
          else if (OrgPages == 8)
              return RedirectToAction("Create", "OrgEmail");
          else if (OrgPages == 9)
              return RedirectToAction("Create", "OrgWebsite");
          else if (OrgPages == 10)
              return RedirectToAction("Create", "OrgNote");
          else
              return RedirectToAction("Index");
      }
      catch (Exception)
      {
          ModelState.AddModelError("Error", "This item exists in the database already.");
      }
      return View(email);
  }
  </code></pre>
  
  <p>And in my Create View page I put this inside the fieldset:</p>
  
  <pre><code>&lt;div&gt;
      @Html.Label("Add:")
  &lt;/div&gt;
  &lt;div&gt;
      @Html.DropDownList("OrgPages")
  &lt;/div&gt;
  </code></pre>
  
  <p>So, now, when someone submits the form they can pick the next page they quickly want to get to. It works flawlessly when there is no errors submitting the form (like no duplicates). However, when there is a duplicate primary key, or similar error it spits out the error <code>There is no ViewData item of type 'IEnumerable&lt;SelectListItem&gt;' that has the key 'OrgPages'.</code> </p>
  
  <p>Thank you for any help! </p>
  
  <p>Edit * 
  Create action</p>
  
  <pre><code>public ActionResult Create()
  {
      ViewBag.OrgPages = ddp.PageList();
      return View();
  }
  </code></pre>