c# - 如何使用 asp.net mvc 编辑多选列表?

标签 c# asp.net-mvc multi-select

我想像下面这样编辑一个对象。我希望用 UsersGrossList 中的一个或多个用户填充 UsersSelectedList。

使用 mvc 中的标准编辑 View ,我只映射了字符串和 bool 值(下面未显示)。 我在 google 上找到的许多示例都使用了 mvc 框架的早期版本,而我使用的是官方 1.0 版本。

欢迎提供任何 View 示例。

public class NewResultsState
{
    public IList<User> UsersGrossList { get; set; }
    public IList<User> UsersSelectedList { get; set; }
}

最佳答案

假设 User 模型有 Id 和 Name 属性:

<%= Html.ListBox("users", Model.UsersGrossList.Select(
    x => new SelectListItem {
        Text = x.Name,
        Value = x.Id,
        Selected = Model.UsersSelectedList.Any(y => y.Id == x.Id)
    }
) %>

或使用 View 模型

public class ViewModel {
    public Model YourModel;
    public IEnumerable<SelectListItem> Users;
}

Controller :

var usersGrossList = ...
var model = ...

var viewModel = new ViewModel {
    YourModel = model;
    Users = usersGrossList.Select(
        x => new SelectListItem {
            Text = x.Name,
            Value = x.Id,
            Selected = model.UsersSelectedList.Any(y => y.Id == x.Id)
        }
    }

查看:

<%= Html.ListBox("users", Model.Users ) %>

关于c# - 如何使用 asp.net mvc 编辑多选列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/995073/

相关文章:

asp.net-mvc - 单元测试复杂对象图

drop-down-menu - 允许在 Rhandsontable 列下拉列表中进行多选

c# - 使用 NAudio 更改 wav 文件(到 16KHz 和 8bit)

c# - 为什么接口(interface) A 对接口(interface) B 隐藏属性

c# - 迁移未开始 - Autofac 抛出异常

asp.net-mvc - IIS Express 自动为我的项目禁用匿名身份验证,为什么?

javascript - 如何更改 ExtJs Combobox 中的显示消息?

reactjs - 如何动态加载多选? [ react 选择]

c# - 在 MEF 中不使用 ImportAttribute 或 ImportManyAttribute 获取导出的元数据?

c# - 从 Azure 函数连接到 SFTP 服务器