The Zhaph - Ben Duguid offer is good. You can also create a partial view that your main view displays and conveys the necessary fragment of the model.
... "Inboxes", InboxesViewModel. InboxesGrid, . , .
CONTROLLER
public ActionResult Inboxes()
{
var vm = new ListInboxesViewModel();
vm.Inboxes = MyDataService.GetInboxes().OrderBy(i => i.InboxName);
return View(vm);
}
<% Html.RenderPartial("InboxesGrid", Model.Inboxes); %>
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<MoniteredInbox>>" %>
<div>
<%= Html.DropDownListFor(model=>model.Inbox.InboxId,
Model.Inboxes.ToSelectList(
x => x.InboxId.ToString(),
x => x.InboxName,
Model.Inbox.InboxId.ToString(),
"[ Select One ]")) %>
</div>
public static SelectList ToSelectList<T>(this IEnumerable<T> list,
Func<T, string> value,
Func<T, string> text,
string firstValue,
string firstText)
{
var firstSelectListItem = new { Value = firstValue, Text = firstText };
var collection = (new[] { firstSelectListItem })
.Concat(list.Select(x => new { Value = value(x), Text = text(x) }));
return new SelectList(collection, "Value", "Text");
}