2017-07-18 40 views
0

复选框模式不绑定的结合,复选框模式不绑定在ASP.NET MVC核心结合

在绑定隐藏输入正确,但仅复选框不行

这是我的课:

public class SelectedIDsViewModel 
{ 
    public bool IsChecked { get; set; } 

    public int ID { get; set; } 

} 

,这是复选框:

<form asp-action="DeleteAll" asp-controller="Admin" method="post"> 

@for (int i = 0; i < Model.ArticleDetails.Count(); i++) 
{ 

     <input name="@("ddd["+ i + "].IsChecked")" type="checkbox" /> 
     <input name="@("ddd["+ i + "].ID")" 
     value="@Model.ArticleDetails[i].ArticleID" type="hidden" /> 
} 

</form> 

,这是我的方法操作:

[HttpPost] 
public IActionResult DeleteAll(List<SelectedIDsViewModel> ddd) 
{ 

    return View(); 
} 
+1

不应手动渲染''元素。改为使用'@ Html.CheckBoxFor'。 – Dai

+0

是的,它与我合作,谢谢你, – user8328264

+0

你能回答我的问题,所以我可以将你的答复标记为答案? – user8328264

回答

0

您可以使用标签佣工,以及这样

<form asp-action="DeleteAll" asp-controller="Admin" method="post"> 

    @for (int i = 0; i < Model.ArticleDetails.Count(); i++) 
    { 

     <input asp-for="ArticleDetails[i].ID" name="@("ddd["+ i + "].ID")" type="hidden" /> 

     <input asp-for="ArticleDetails[i].IsChecked" name="@("ddd["+ i + "].IsChecked")" /> 
    } 

    <input type="submit" /> 
</form>