Жаф - предложение Бена Дугуида - это хорошо. Вы также можете создать частичное представление, которое будет отображаться вашим основным видом и передавать необходимый фрагмент модели.
Например ... У меня строго типизированное представление "Входящие", которое привязано к моему 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");
}