Kendo UI:将MultiSelect选定值作为逗号分隔的字符串

时间:2014-08-06 11:32:47

标签: c# asp.net-mvc kendo-ui kendo-asp.net-mvc kendo-multiselect

如果有人可以帮助解决我的问题,我会很感激。 我有一个PAYMENT_CURRENCIES字段string类型的实体,它应该存储逗号分隔值,即“USD,EUR,AED”(或任何其他分隔字符)。 在我的观点中:

 @Html.Kendo().MultiSelectFor(model => model.Contract.PAYMENT_CURRENCIES).BindTo(context.Currencies).DataTextField("CODE").DataValueField("CODE").Placeholder("Add currency...")

问题是当我提交表单时,我只收到Controller中的第一个选定值。 我不想更改IEnumerable字段的数据类型。

有没有办法将所有选定的值作为带有分隔符的字符串接收?

非常感谢

2 个答案:

答案 0 :(得分:1)

我认为您不能自动将多选输入值转换为单个字符串。

所以你可以做的是:

  • 使用包含List
  • 的viewModel(ContractViewModel)
  • 或使用javascript将您的输入值“转换”为使用您想要的任何分隔符分隔的单个字符串

答案 1 :(得分:0)

我和您的要求相同,并且找不到合适的解决方案,这就是我解决的方法:

  • 在ViewModel public List<string> SelectedCurrencies { get; set; }中创建新的属性
  • 配置您的MultiSelect Kendo帮助器以绑定到新创建的属性@Html.Kendo().MultiSelectFor(model => model.SelectedCurrencies) .BindTo(context.Currencies) .DataTextField("CODE") .DataValueField("CODE") .Placeholder("Add currency...")
  • 要保存:现在,当您点击操作方法时,只需设置逗号分隔的字段PAYMENT_CURRENCIES = string.Join(",", viewModel.SelectedCurrrencies);
  • 要阅读: SelectedCurrencies = PAYMENT_CURRENCIES.Split(',').ToList();