c# - 如何从 Asp.net MVC 中的 ListBoxFor 选择框返回空列表而不是空列表?

标签 c# asp.net asp.net-mvc asp.net-mvc-4 html.dropdownlistfor

Controller 获取操作

IList<InputVoltage> inputVoltagesList = unitOfWorkPds.InputVoltageRepository.GetAll.ToList();

pdsEditViewModel.InputVoltageList = inputVoltagesList.Select(m => new SelectListItem { Text = m.Name, Value = m.Id.ToString() }); 

View 模型

    public IEnumerable<SelectListItem> InputVoltageList { get; set; }
    public List<int> SelectedInputVoltages { get; set; }

查看

    @Html.ListBoxFor(m => m.SelectedInputVoltages, Model.InputVoltageList)

当用户未进行任何选择时,我希望收到一个空列表,selectedInputVoltage 作为空进入我的后 Controller 操作,如何让它作为空列表进入?

我喜欢这两个答案,使用其中一个比另一个有什么好处吗?

最佳答案

如果为空,请确保它在 Controller (或模型/ View 模型)中初始化,或者(尽管代码很丑陋)如果为空,则使用合并运算符动态初始化:

@Html.ListBoxFor(m => m.SelectedInputVoltages, Model.InputVoltageList ?? new List<SelectListItem>())

关于c# - 如何从 Asp.net MVC 中的 ListBoxFor 选择框返回空列表而不是空列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19732667/

相关文章:

c# - 使用C#在浏览器中打开word文件

C# SOAP Web 服务客户端 - 显示如何记录所有原始 SOAP 输入和输出的示例?

c# - 如何在gridview右侧移动自动生成删除按钮

c# - Asp.Net MVC Core 启用双重转义

javascript - 来自ajax的 Controller 中的空参数

c# - 从 .net 代码和 JavaScript 调用 SignalR hub

c# - 如何在 graphql-dotnet 中注入(inject)数据库上下文

c# - 在 C# 中实现模式匹配

asp.net - 缓存事件是否会阻止 IIS 卸载 ASP.NET 应用程序?

javascript - 如何将 JavaScript 代码放在 ASP.NET 页面的底部?