gpt4 book ai didi

c# - MVC 5 中用于多选的 ViewModel 属性

转载 作者:行者123 更新时间:2023-12-03 10:36:04 26 4
gpt4 key购买 nike

我正在尝试创建一个 one-to-many表单中的一组值。虽然 this答案可能是我需要的,根据要求我不能使用 @Html.ListBoxFor因为我需要提供每个项目的详细信息,所以最好使用 checkbox输入进行选择。

问题是我不知道如何将这些复选框绑定(bind)到我的 View 模型中的属性(如果可能的话是 ICollection<MyType> myItemList )。

我的 View Model包含所述属性,因此 GET Create() View 可以使用它并显示每个项目的信息属性信息。所以我在 POST Create(MyViewModel vm) 上遇到了麻烦获取选定值的列表(或只是 ID)

我怎样才能做到这一点?

最佳答案

因此,假设您可以将模型中的属性更改为:

List<MyType> myItemList

我们可以添加一个属性到 MyType表示选择:
public bool IsSelected { get; set; }

然后你可以这样做:
@for (int i = 0; i < Model.myItemList.Count; i++)
{
@Html.HiddenFor(m => Model.myItemList[i].Id)
@Html.LabelFor(m => Model.myItemList[i].Text)
@Html.CheckBoxFor(m => Model.myItemList[i].IsSelected)
}

注意:我假设 Id是 ID,您有一个名为 Text 的文本字段在上面的代码中。

然后要获得选定的项目,您的 HttpPost方法类似于:
public ActionResult YourAction(YourModel Model)
{
var selections = Model.myItemList
.Where(m => m.IsSelected)
.ToList();

//do what you want with those selections
}

关于c# - MVC 5 中用于多选的 ViewModel 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28768941/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com