gpt4 book ai didi

asp.net-mvc-3 - ASP.Net MVC 3 多复选框列表

转载 作者:行者123 更新时间:2023-12-05 01:29:16 25 4
gpt4 key购买 nike

我正在开发一个 ASP.Net MVC 3 Web 应用程序,我最近发布了一个关于如何显示复选框列表的问题

ASP.Net MVC 3 Retrieve Checkbox List Values

多亏了 RubbleFord 和 Darin Dimitrov 的帮助,我才能完成这项工作。

这对于一个复选框列表非常有效,但是,我现在需要能够在同一个 View 上显示多个复选框列表,即,请参见附图。

enter image description here

我目前用来显示一个列表的 ViewModels 如下;

public class ViewModelShiftSubSpecialties
{

public ListItem specialtyName { get; set; }
public IEnumerable<ViewModelCheckBox> SubSpecialityList { get; set; }

}

public class ViewModelCheckBox
{
public string Id { get; set; }
public string Name { get; set; }
public bool Checked { get; set; }
}

在我的 Controller 中,我像这样填充 ViewModelShiftSubSpecialties:
var subSpecialties = GetSubSpecialtiesForSpecialty(5);

ViewModelShiftSubSpecialties viewModel = new ViewModelShiftSubSpecialties();

var checkBoxList = new List<ViewModelCheckBox>();

viewModel.specialtyName = _listService.GetListItemByID(5); //Medicine Specialty

foreach (var item in subSpecialties)
{
ViewModelCheckBox chkBox = new ViewModelCheckBox { Id = item.subID.ToString(), Name = item.ListSub.description, Checked = false };
checkBoxList.Add(chkBox);
}

viewModel.SubSpecialityList = checkBoxList;

在我的 View 中,我显示列表名称并使用编辑器模板来显示复选框列表
<h3>@Model.specialtyName.description</h3>
@Html.EditorFor(m => m.SubSpecialityList)

但是,我完全不知道如何让上述代码与一个 View 上的多个复选框列表一起使用。这甚至可能吗?

如果有人能帮我解决这个问题,我将不胜感激。

谢谢。

最佳答案

看起来你已经完成了所有的工作。您已经有一个可以与 ViewModelCheckBox IEnumerable 一起正常工作的编辑器模板。如果您不能将它们重用于相同的数据类型,那么编辑器模板将没有用处。你只需要使用它三遍。只需扩展您的 ViewModel

public class ViewModelShiftSubSpecialties
{
public ListItem specialtyName { get; set; } //Might need 3 of these
public IEnumerable<ViewModelCheckBox> SubSpecialityList1 { get; set; }
public IEnumerable<ViewModelCheckBox> SubSpecialityList2 { get; set; }
public IEnumerable<ViewModelCheckBox> SubSpecialityList3 { get; set; }
}

在你的 Controller 中创建所有三个(然后给它们起更好的名字)。

然后在你的 View 中
@Html.EditorFor(m => m.SubSpecialityList1)
@Html.EditorFor(m => m.SubSpecialityList2)
@Html.EditorFor(m => m.SubSpecialityList3)

或者,您可以创建一个包含单个专业名称和 IEnumerable ViewModelCheckBox 的类。 ,并让您的 ViewModel 拥有这个新类的 IEnumerable。然后为这个新类创建一个新的编辑器模板。如果您的列表大小可变/可能会改变,我认为这是值得的。否则我会使用早期的解决方案进行简单的修复。
public class ViewModelShiftSubSpecialties
{
public class IEnumerable<SubSpecialty> { get; set; }
}

public class SubSpecialty
{
public ListItem specialtyName { get; set; }
public IEnumerable<ViewModelCheckBox> SubSpecialityList
}

关于asp.net-mvc-3 - ASP.Net MVC 3 多复选框列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10193396/

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