checkbox用于LINQ表达式

本文关键字:表达式 LINQ 用于 checkbox | 更新日期: 2023-09-27 17:59:04

在查询数组中的数组时,我有点不知所措。我的模型包括以下内容:

(安排)>(InterestedPlayers,JustPlayId)>(Name,Id)

在代码中,我有一些按钮触发foreach循环中的模式:

 foreach (var item in Model.Arrangements)
{
  ...
}

现在我想列出感兴趣的玩家的名字,每个人都有一个复选框。所以我尝试了这个表达:

  Html.CheckBoxFor( m => m.Arrangements
                   .Where(x => x.JustPlayId == item.JustPlayId)
                   .Select(e => e.InterestedPlayers.Select(c => c.Name))
                  )

有什么建议吗?

checkbox用于LINQ表达式

Html.CheckBoxFor需要绑定布尔属性,而不是像Name这样的字符串属性。您应该在Model中创建一个类似IsSelect的bool属性。

(安排)>(InterestedPlayers,JustPlayId)>(Name,Id)

InterestedPlayers=>名称(字符串),IsSelect(布尔)

例如,试试这个:

int i = 0, j = 0;
foreach (var item in Model.Arrangements)
{
    foreach(var player in item.InterestedPlayers)
    {
        Html.CheckBoxFor(m => m.Arrangements[i].InterestedPlayers[j].IsSelect) 
        Html.LabelFor(m => m.Arrangements[i].InterestedPlayers[j].Name)
        j++;
    }
    j = 0;
    i++;
}    
try this.
 @foreach (var item in Model.Arrangements){
<div id="playersname">
 <%: item.InterestedPlayers.Name%>
 <%:Html.CheckBoxFor(model => Arrangements.InterestedPlayers.Name, new { id =     "InterestedPlayersname" })%>
 </div>

并使用jquery获取感兴趣玩家的所有选定名称

上面已经发布了一些很好的解决方案,但我想我会在这期间发布我的想法,改为使用html.checkbox。

@using (Html.BeginForm("MoveToOverFlow", "JustPlay", new {id = Model.Id, slug = Model.Slug}))
{
foreach (var player in item.InterestedPlayers)
    {        
      @player.Name 
      @Html.CheckBox("PlayerId", new { value = player.Id})
      @Html.SubmitButton(">>>>>>",true,new {@class = "btn btn-primary"})
    }
}

这会将一个列表发送回控制器,如果勾选了复选框,则该列表具有玩家的id,如果未勾选

则该列表为"false"