想象一个常见的场景,这是我遇到的一个更简单的版本。事实上我还有几层更深层的巢穴。
但情况是这样的
主题包含 List 类别包含 List 产品包含 List
我的控制器提供了一个完全填充的主题,包含该主题的所有类别、此类别中的产品及其订单。
订单集合有一个名为 Quantity 的属性(还有许多其他属性) ,需要进行编辑。
@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)
}
}
}
如果我使用 lambda,那么我似乎只能得到对顶部 Model 对象的引用,而不是 foreach 循环中的“ Theme”。
我试图在那里做的事情是否可能,或者我是否高估或误解了什么是可能的?
使用上面的命令,我在 TextboxFor、 EditorFor 等上得到一个错误
CS0411: 方法的类型参数 ‘ System.Web.Mvc.Html.InputExtensions.TextBoxFor (System.Web.Mvc.HtmlHelper, 系统。 Linq。表达式。表达式 >)’ 无法从用法推断。请尝试指定类型参数 明确地。
谢谢。