【发布时间】:2013-09-24 09:07:17
【问题描述】:
我正在尝试接收我的多选框的选定值。通过 Ajax 调用。
下面是我的测试动作
public ActionResult MultiSelect(String[] test)
{
String[] arrayornot = test; //null being recieved. or the string if hardcoded
}
Jquery
alert($('#county').val()); // London, Brim
$.ajax({
url: '@Url.Action("MultiSelect", "APITest")',
type: 'GET',
cache: false,
data: { test: $('#county').val()},
success: function (result) {
$('#myDiv').html(result);
}
});
如果我将它硬编码为一个字符串,它就可以正常工作。使用String[] 或String 端点。如果它以逗号分隔的字符串传递,我可以在服务器端对其进行排序。或者字符串数组更好。
【问题讨论】:
-
有了将数组转换为字符串的想法,在 Jquery 中以逗号分隔,它实际上只是
$('#county').val().toString()。仍然不确定如何将其作为数组传递。 -
您是否尝试过删除数据的对象表示法?尝试解析参数时,它不会寻找具有名为 test 的属性的对象 - 它将寻找一个字符串数组。
-
尝试将选中的项目添加到 JS 数组列表中,然后将其作为 JSON 字符串传递
-
@anthr 当我打印它时,我得到
London, Brim所以我不确定它甚至有什么对象表示法。或者如何将其映射到字符串数组。 -
@Murali 谢谢,但我更喜欢将其识别为数组的原因是我不必更改大量代码来接受字符串。我宁愿不必在服务器端反序列化它。无论哪种方式,它似乎都类似于发送普通的逗号分隔字符串。除非 JSON 字符串会映射到字符串数组?
标签: jquery asp.net-mvc asp.net-mvc-4 multi-select