如何获得一个列表框来多选并连接字符串答案?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"?
不确定为什么要返回逗号分隔的字符串(需要javascript来构造它)。只需将模型中的特性AString
更改为string[] AString {get; set;}
即可。然后,该属性将包含已选择的值的数组。
如果您确实需要以该格式保存值,则使用(在POST方法中)
var result = string.Join(",", AString);
并且您不需要包括new {Multiple = "multiple"})
。ListBoxFor
无论如何都会添加该属性。