从MVC 4中的C#字典填充JQuery自动完成?

时间:2014-07-28 19:08:21

标签: jquery asp.net-mvc

我有一个字典,我传递给我的视图正在使用的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结果,我已经有了数据,我想在本地映射它。

提前致谢!

2 个答案:

答案 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>

希望这会对任何面临同样问题的人有所帮助,而且在网上解决它并没有什么帮助!