My controller:
var types = _opportunityTypeService.GetAll(); //has id 1,2,3,4
viewmodel.OpportunityTypes = new SelectList(types, "Id", "Name", recipe.Id); //recipe.Id is 4
return View(viewmodel);
and my view:

and the html result:

What am I missing?
Html.DropDownListForcreates a dropdownlist FOR a property. In your case for the propertym.OpportunityType.So the selected item will be what is in
m.OpportunityType. The Selected property in the SelectList will be used when you useHtml.DropDownList.So your code would be: