是否可以将 Lambda 与 List<ViewModel> 模型一起使用?

Is it possible to use Lambda with model of List<ViewModel>?

当模型是 List 类型时,我们如何使用它的 lambda?

@model List<ViewModels.MyModel>

这不适用于 EditorFor

@Html.EditorFor(m=>m.FirstOrDefault().Value)

如何将模型与 EditorFor 绑定?

您已经对其进行了迭代并在它作为集合时进行了索引:

@for(int i =0; i <Model.Count; i ++)
{
    @Html.EditorFor(m=> Model[i].Value)
}

完整示例如下:

您的控制器代码:

public class ModelValue
{
   public int ID { get; set; }
   public string Name { get; set; }
} 

public class TestController : Controller
{
   public ActionResult Index()
   {
      List<ModelValue> model = new List<ModelValue>();
      for (int i = 0; i < 12; i++)
      {
         model.Add(new ModelValue { ID = i, Name = "Name " + i.ToString()  });
      }

      return View(model);
   }

   [HttpPost]
   public ActionResult Index(List<ModelValue> model)
   {
      return View(model);
   }
}

您的查看代码:

@model List<MVCApp.Controllers.ModelValue>

@using (Html.BeginForm())
{
   for (int i = 0; i < Model.Count; i++)
   {
      @Html.EditorFor(modelitem => Model[i].ID)
      @Html.EditorFor(modelitem => Model[i].Name)
      <br />
   }
   <button type="submit">Go</button>
}