我有一个字典,我传递给我的视图正在使用的ViewModel,但我试图将此字典映射到JQuery自动完成,因此文本框可以获取密钥和值,但我可以&# 39;要想出来,这是代码:
//这是我的文本框
<input type="text" Id="NewProxy" value="" />
//这里是JS代码:
$(function () {
var response = '@Html.Raw(Model.Dictionary1)';
$( "#NewProxy" ).autocomplete({
// source: response,
source:[{
label: '@Html.Raw(String.Join(",", Model.Dictionary1.Select(i => "'" + i.Value + "'")))',
value: '@Html.Raw(String.Join(",", Model.Dictionary1.Select(i => "'" + i.Key + "'")))'
}]
});
});
请注意,我不想回发Ajax Call以获得JSON结果,我已经有了数据,我想在本地映射它。
提前致谢!
答案 0 :(得分:0)
如果您已在客户端上拥有数据,则可以将键值对加载到数组中,然后将其添加到输入中。但是,我只是一个新秀。
答案 1 :(得分:0)
经过长时间的搜索和尝试,我发现我们可以构造一个对象数组,每个对象都必须有jquery文档的标签和值,所以工作代码是这样的:
<input type="text" Id="NewProxy" value="" />
<script>
$(function () {
// var response = '@Html.Raw(Model.Dictionary1)';
// alert(response);
//form an array of Label and Value from the Dictionary
var _source = [];
@foreach (var item in Model.Dictionary1)
{
<text>
_source.push({
label:'@item.Value',
value:'@item.Key'
});
</text>
}
alert(_source);
$("#NewProxy" ).autocomplete({
source: _source
});
});
</script>
希望这会对任何面临同样问题的人有所帮助,而且在网上解决它并没有什么帮助!