gpt4 book ai didi

c# - MVC 和绑定(bind)到复选框列表

转载 作者:行者123 更新时间:2023-11-30 22:45:42 25 4
gpt4 key购买 nike

这是我的问题。我有一个显示给用户的模型列表。左侧是每个型号的复选框,指示用户想要选择该型号(在这种情况下,我们正在构建用户可以添加到他们的购物车的产品)。该模型没有被选中的概念......它严格包含有关产品的信息。

完成后我与其他一些开发人员进行了交谈,我能想到的最好办法是让 formcollection 和字符串解析键值以确定复选框是否被选中。这似乎并不理想。我在想会有更强烈的约束力,但我想不出办法去做。

我尝试创建另一个模型,该模型具有表示被检查的 bool 属性和模型的属性,并将该模型类型的列表传递给 View ,并在接受新模型列表的 Controller 上创建 ActionResult/检查属性,但它返回 null。我是不是太像网络表单了,应该继续解析复选框值?

这是我将模型包装在一个集合中所做的工作:


public class SelectableCollection[T] : IList[T] {}
public class SelectableTrack{
public bool IsChecked{get;set;}
public bool CurrentTrack{get;set;}
}
对于 View ,我继承自


ViewPage[SelectableCollection[SelectableTrack]]

对于 Controller ,我将其作为 ActionResult:


[HttpPost]
public ActionResult SelectTracks(SelectableCollection sc) {

return new EmptyResult();
}

但是当我进入 ActionResult 内部时,集合为空。它没有通过的任何原因?

最佳答案

您不想将整个页面绑定(bind)到集合。

  • 创建一个名为 MyViewModel 的类(或者任何有意义的,在名称中使用 View 的名称。)使该类成为强类型 View 的基础。
  • 添加 SelectableCollection<T>作为 ViewModel 的属性(将其称为 SelectedProducts 或其他名称)并将其填充到 Controller 中。
  • 将复选框绑定(bind)到 SelectedProducts 属性。

此外,您是否使用自定义的 CheckBoxList 助手?没有一种现成的 ASP.NET MVC。使用这篇文章来构建您的复选框:

How to handle checkboxes in ASP.NET MVC forms?

关于c# - MVC 和绑定(bind)到复选框列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2922166/

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