title: Setting Selected=True on each SelectList item does not affect rendered ListBox
body: <p>I've been messing around with this one all day and I'm at the last hurdle. Basically I've got a multiple select list on one of my forms which I'm populating with data from my database. I've got a 'Widgets' property defined in my model as a selectlist.</p>
  
  <p>Then in the section where I bind properties from my database to my model, I've got linq expression which adds properties from another table to my selectlist. This is all working fine and I can use the result to correctly post back. However if I set the selected = true property in my linq statement nothing gets selected on the other end. So my question is why? All the other properties, id's etc.. are getting passed through fine.</p>
  
  <p>My Model:</p>
  
  <pre><code>[DisplayName("Article Id")]
  public int ArticleId { get; set; }
  [DisplayName("Article Title")]
  public string ArticleTitle { get; set; }
  [DisplayName("Article Body")]
  public string ArticleBody { get; set; }
  [DisplayName("Publish on Site")]
  public bool Published { get; set; }
  [DisplayName("Add to Featured Articles")]
  public bool Featured { get; set; }
  [DisplayName("Created Date")]
  public DateTime CreatedDate { get; set; }
  public int AuthorId { get; set; }
  [DisplayName("Author")]
  public string Author { get; set; }
  [DisplayName("Modified Date")]
  public Nullable&lt;DateTime&gt; ModifiedDate { get; set; }
  public int OwnerId { get; set; }
  public SelectList Widgets { get; set; }
  </code></pre>
  
  <p>My Controller (Relevent bit)</p>
  
  <pre><code>ArticlesModel Obj = new ArticlesModel
  {
      ArticleId = row.ArticleId,
      ArticleTitle = row.ArticleTitle,
      ArticleBody = row.ArticleBody,
      Featured = row.Featured,
      Published = row.Published,
      Widgets = new SelectList(db.Query("SELECT * FROM [Widgets]").Select(x =&gt; new SelectListItem { Text = x.WidgetName, Value = ((int)x.WidgetId).ToString(), Selected = true }), "Value", "Text")
  };
  Obj.SetGlobalProperties(this.ControllerContext.HttpContext.Application);
  ViewData["Article"] = Obj;
  </code></pre>
  
  <p>and Finally the View</p>
  
  <pre><code>@Html.ListBoxFor(m =&gt; m.Widgets, Model.Widgets, new { @class = "form-control", @style = "margin-left: -20px !important; width: 500px" })
  </code></pre>
  
  <p>Would really appreciate any help here - I've been pulling my hair out all day with something that on the face of it seems quite simple.</p>
  
  <p>Thanks in advance,</p>