在java脚本中,我创建了一个json var
var Token = { "TagItem": { "TagList": [tags] } };
其中标签是
"AA","BB","CCC","DDDD"
我使用ajax调用asp mvc控制器,然后将json发送给方法。 绝望的json对象是
public class TagItem
{
public List<string> TagList { get; set; }
}
并在ajax调用list中反序列化,其中包含单个值[“AA”,“BB”,“CCC”,“DDDD”]。
而不是像我想写的那样多的价值
var data = { "tagItem": { "TagList": ["AA", "BB", "CCC", "DDDD"]} };
哪个效果很好。
关于如何用js写它的想法?
答案 0 :(得分:3)
<击>
[tags]
将创建一个只包含一个元素标记的数组。
如果tags
是逗号分隔的字符串,例如"AA,BB,CCC,DDDD"
,那么您可以使用.split
将其转换为数组。
var Token = { "TagItem": { "TagList": tags.split(',') } };
击> <击> 撞击>
更新:在看到您发布的屏幕截图(http://i.imgur.com/IzSGS8L.png)后,我看到这里的真正错误是什么。这就是你创建tags
的方式。
您无需添加"
或,
。您只是构建一个数组/对象,而不是构建一个字符串。 .map
返回一个数组,不需要使用.join
将其转换为字符串,只需将其用作数组。
var tags = $('#myTags input[name="tags"]').map(function(){
return $(this).val();
}).get();
var Token = { "TagItem": { "TagList": tags } };
注意:[]
周围没有tags
。那是因为它已经一个数组,不需要将它添加到另一个数组。