Я использую общие шаблоны редактора для рендеринга вложенных коллекций в моем представлении с помощью HTML-помощника EditorFor, как показано ниже. Я не влюблен во все эти вложенные частичные представления, но, делая это таким образом, присваиваю имена соответствующим образом, чтобы они отправляли обратно в мой контроллер в ViewModel без проблем.
Как бы я отсортировал порядок на самом решительном уровне гнезда? В таком случае, как получить «Budget.vbhtml» для отображения в порядке года (по убыванию)?
Заранее спасибо!
Вид верхнего уровня (Organization.vbhtml):
<div id="budgets">
@Html.EditorFor(Function(org) org.OrganizationBudgets))
</div>
OrganizationBudget.vbhtml:
@ModelType CharityMVC.OrganizationBudget
@Html.EditorFor(Function(ob) ob.Budget)
Budget.vbhtml:
@ModelType CharityMVC.Budget
@Model.Year @Html.EditorFor(Function(b) b.Amount)
UPDATE:
Звучит так, будто я должен делать это в моем контроллере, когда заполняю свой объект Model, но как мне отсортировать дочерние элементы или дочерние элементы в запросе linq? Это мой текущий код:
Function Edit(ByVal id As Integer) As ActionResult
Dim o As Organization
Dim ovm As OrganizationViewModel
'Load the organization from the database
o = (From org In _db.Organizations _
Where org.Id = id _
Select org).FirstOrDefault()
'Map it to the ViewModel
ovm = AutoMapper.Mapper.Map(Of Organization, OrganizationViewModel)(o)
Return View(ovm)
End Function