如何获得一个列表框来多选并连接字符串答案?C#MVC

本文关键字:连接 字符串 C#MVC 答案 何获得 列表 一个 | 更新日期: 2023-09-27 18:22:42

我正在尝试让列表框返回串联和逗号分隔的字符串,作为字符串返回。

在我的ViewModel中,我有:

public IEnumerable<SelectListItem> XListItems
    {
        get
        {
            var list = new List<SelectListItem>();
            list.Add(new SelectListItem { Value = "A", Text = "A" });
            list.Add(new SelectListItem { Value = "B", Text = "B" });
            list.Add(new SelectListItem { Value = "C", Text = "C" });
            list.Add(new SelectListItem { Value = "D", Text = "D" });
            list.Add(new SelectListItem { Value = "E", Text = "E" });
            return list;
        }
    }

我的ViewModel还包含一个日志,其中包含一个字符串AString。

在我看来,我有:

@Html.ListBoxFor(model => model.log.AString, Model.XListItems, new {Multiple = "multiple"})

现在,它只是返回选定的第一个项目。

如何允许用户选择多个项目并将其作为字符串返回,例如:"a,C,D"?

如何获得一个列表框来多选并连接字符串答案?C#MVC

不确定为什么要返回逗号分隔的字符串(需要javascript来构造它)。只需将模型中的特性AString更改为string[] AString {get; set;}即可。然后,该属性将包含已选择的值的数组。

如果您确实需要以该格式保存值,则使用(在POST方法中)

var result = string.Join(",", AString);

并且您不需要包括new {Multiple = "multiple"})ListBoxFor无论如何都会添加该属性。