Q:

MVC/C#: DropDownListFor not selecting 'selected' item

ok, I have a situation where I need to have multiple DDLs of 'BayTypes' that use the same dictionary, which isn't a problem.  One DDL for each of 'n' BayOptions.  I'm passing a dictionary to my view as 'BayTypes' like this:
(Controller)
var bayTypes = _bayTypeRepository. GetBayTypes().ToList();
property. BayTypes = bayTypes. ToDictionary(g => g.Name, g => g.BayTypeGuid. ToString());

(View)
var overrideValue = item. BayTypeOverride ?  item. BayTypeOverrideValue. BayTypeGuid. ToString() : string. Empty;
var result = (from x in Model. BayTypes
              select new SelectListItem()
                  {
                  Text = x.Key,
                  Value = x.Value,
                  Selected = x.Value == overrideValue <-- ***this is working***
                  });
if (item. BayTypeOverride == true)
    {
     @Html. DropDownListFor(x => x.BayTypes, result, new { @Name = "BayOptionsToSubmit[" + aCounter + "].BayTypeOverrideValue" })
    }
    else
    {
     @Html. DropDownListFor(x => x.BayTypes, result, new { @Name = "BayOptionsToSubmit[" + aCounter + "].BayTypeOverrideValue", @style = "display:none;" })
    }

The correct item IS getting selected in the 'result' object.  If I step through, and watch 'result', I can see that 'Selected = true' for the right one... but it's not selecting in the DDLFor when it renders...
What am I missing? 

A:

Solved it... Changed to a .DropDownList (no 'For') and passed in the 'name' as the 'result' var created earlier.  Works. 
var overrideValue = item. BayTypeOverride ?  item. BayTypeOverrideValue. BayTypeGuid. ToString() : string. Empty;
var result = (from x in Model. BayTypes
              select new SelectListItem()
              {
                Text = x.Key,
                Value = x.Value,
                Selected = x.Value == overrideValue
               });
               if (item. BayTypeOverride)
               {
                @Html. DropDownList("result", result, htmlAttributes: new { @Name = "BayOptionsToSubmit[" + aCounter + "].BayTypeOverrideValue" })
               }
               else
               {
                @Html. DropDownList("result", result, htmlAttributes: new { @Name = "BayOptionsToSubmit[" + aCounter + "].BayTypeOverrideValue", @style = "display:none;" })
                                }

