Представьте себе общий сценарий, это более простая версия того, что я вижу. У меня на самом деле есть несколько слоев дальнейшего гнездования на моем...
Но это сценарий
Тема содержит список Категория содержит список Продукт содержит список
My Controller предоставляет полностью заполненную тему со всеми категориями для этой темы, Продукты в рамках этих категорий и их заказы.
Коллекция заказов имеет свойство "Количество" (среди многих других), которое должно быть доступно для редактирования.
@model ViewModels.MyViewModels.Theme
@Html.LabelFor(Model.Theme.name)
@foreach (var category in Model.Theme)
{
@Html.LabelFor(category.name)
@foreach(var product in theme.Products)
{
@Html.LabelFor(product.name)
@foreach(var order in product.Orders)
{
@Html.TextBoxFor(order.Quantity)
@Html.TextAreaFor(order.Note)
@Html.EditorFor(order.DateRequestedDeliveryFor)
}
}
}
Если я использую лямбда вместо этого, тогда мне кажется, что я получаю ссылку на верхний объект Model, "Theme", а не те, что находятся внутри цикла foreach.
Я пытаюсь сделать то, что я пытаюсь сделать, даже если я переоценил или неправильно понял, что возможно?
С приведенным выше я получаю сообщение об ошибке в TextboxFor, EditorFor и т.д.
CS0411: аргументы типа для метода "System.Web.Mvc.Html.InputExtensions.TextBoxFor(System.Web.Mvc.HtmlHelper, System.Linq.Expressions.Expression > )" не может быть выведено из использования. Попробуйте указать аргументы типа в явном виде.
Спасибо.