Como usar um ViewBag para criar uma lista suspensa?

Controlador:

public ActionResult Filter()
{
    ViewBag.Accounts = BusinessLayer.AccountManager.Instance.getUserAccounts(HttpContext.User.Identity.Name);
    return View();
}

Visão:

<td>Account: </td>
<td>@Html.DropDownListFor("accountid", new SelectList(ViewBag.Accounts, "AccountID", "AccountName"))</td>

ViewBag.Accounts contémAccount objetos que têmAccountID, AccountName e outras propriedades. Eu gostaria de umDropDownList chamadoaccountid (para que, no formulário, eu possa passar o AccountID selecionado) eDropDownList para exibir oAccountName enquanto tem oAccountID como valor.

O que estou fazendo de errado no código de visão?

questionAnswers(6)

yourAnswerToTheQuestion