Javascript 使用字符串元素列表作为Select2组件的源

Javascript 使用字符串元素列表作为Select2组件的源,javascript,jquery,asp.net-mvc,razor,jquery-select2,Javascript,Jquery,Asp.net Mvc,Razor,Jquery Select2,我正在尝试为我正在开发的这个网站设计一个标签控制器,但是我无法让json部分正常工作 从顶部开始,我在cshtml视图中有一个隐藏的输入元素(JS从中获取): 然后,在我的索引操作中填充列表tagsavaailable: ... foreach (var tag in GetAvailableTags()) { Model.TagsAvailable.Add(tag.Name); } ... 最后,GetAvailableTags()正在调用一个wcf服务,该服务在BaseTagCon

我正在尝试为我正在开发的这个网站设计一个标签控制器,但是我无法让json部分正常工作

从顶部开始,我在cshtml视图中有一个隐藏的输入元素(JS从中获取):

然后,在我的索引操作中填充列表
tagsavaailable

...
foreach (var tag in GetAvailableTags())
{
    Model.TagsAvailable.Add(tag.Name);
}
...
最后,
GetAvailableTags()
正在调用一个wcf服务,该服务在
BaseTagController
中返回一组标记契约:

public List<TagContract> GetAvailableTags()
{
    return UnitClient.GetAllUnitTags().Select(unitTag => new TagContract
                                                             {
                                                                 Id = unitTag.Id,
                                                                 Name = unitTag.Name
                                                             }).ToList();
}
public List GetAvailableTags()
{
返回UnitClient.GetAllUnitTags()。选择(unitTag=>new TagContract
{
Id=unitTag.Id,
Name=unitTag.Name
}).ToList();
}
在chrome中检查控制台时,我发现以下错误:
加载资源失败:服务器响应状态为500(内部服务器错误)


作为记录,我知道服务返回请求的数据,这更多的是我编写的代码的问题,我想:)

遇到了一个教程,它帮助我完成了我想要的。只需重写代码以匹配我的值


可以找到Github代码。

您不是在使用数据发布到操作,但该操作的方法签名不带参数。我不认为GetTagsAsJson()会受到攻击,它正在尝试调用GetTagsAsJson(结果)。您应该尝试调试GetTagsAsJson操作,并查看它何时中断。此外,为什么使用HttpPost并返回GET中允许的json?
...
foreach (var tag in GetAvailableTags())
{
    Model.TagsAvailable.Add(tag.Name);
}
...
public List<TagContract> GetAvailableTags()
{
    return UnitClient.GetAllUnitTags().Select(unitTag => new TagContract
                                                             {
                                                                 Id = unitTag.Id,
                                                                 Name = unitTag.Name
                                                             }).ToList();
}