Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在asp.net-mvc站点中,存储列表客户端以切换下拉选择选项的最佳方式是什么_Javascript_Jquery_Asp.net Mvc_Select_Viewmodel - Fatal编程技术网

Javascript 在asp.net-mvc站点中,存储列表客户端以切换下拉选择选项的最佳方式是什么

Javascript 在asp.net-mvc站点中,存储列表客户端以切换下拉选择选项的最佳方式是什么,javascript,jquery,asp.net-mvc,select,viewmodel,Javascript,Jquery,Asp.net Mvc,Select,Viewmodel,我有一个页面,我加载了一个选择下拉框,但我想让javascript代码将这个列表切换到一组不同的选项 我有清除和重新填充javascript中选择列表框的代码 function UpdateDropdown(list, dropdownSelector) { var options = ''; $.each(list, function (index, value) { if (value.Text == null) { value.Text = ''; }

我有一个页面,我加载了一个选择下拉框,但我想让javascript代码将这个列表切换到一组不同的选项

我有清除和重新填充javascript中选择列表框的代码

function UpdateDropdown(list, dropdownSelector) {
var options = '';
$.each(list, function (index, value) {
    if (value.Text == null) {
        value.Text = '';
    }
    if (value.Value == null) {
        value.Value = '0';
    }

    options += '<option value="' + value.Value + '">' + value.Text + '</option>';
});
$(dropdownSelector).html(options);
函数更新下拉列表(列表,下拉选择器){
var选项=“”;
$.each(列表、函数(索引、值){
如果(value.Text==null){
value.Text='';
}
如果(value.value==null){
value.value='0';
}
选项+=''+值。文本+'';
});
$(dropdownSelector).html(选项);
}


这不是问题所在,但我的问题是如何从视图模型本地存储一个数组,以便以后从javascript进行查找?我应该将其存储在隐藏的选择框中吗?这里有推荐的做法吗?

最简单、最干净的解决方案是只向视图中写入一些json,存储在一个变量中,然后在UpdateDropdown函数中访问该变量。在你看来:

<script type="text/javascript">
  var globalData = @Html.Raw(Json.Encode(Model.MyArray));
</script>

var globalData=@Html.Raw(Json.Encode(Model.MyArray));
根据所使用的ASP.NET MVC版本的不同,输出json的确切方法会有所不同,但这应该会让您走上正确的道路

一般的javascript最佳实践是为代码创建一个名称空间,然后将所有其他变量放入其中,这样就不会污染全局名称空间。所以实际上应该是这样的:

<script type="text/javascript">
  var MyApp = {};
  MyApp.dropdownData = @Html.Raw(Json.Encode(Model.MyArray));
</script>

var MyApp={};
MyApp.dropdownData=@Html.Raw(Json.Encode(Model.MyArray));

但是我提供的第一段代码就可以开始了。

最简单、最干净的解决方案是只向视图中写入一些json,存储在一个变量中,然后在UpdateDropdown函数中访问该变量。在你看来:

<script type="text/javascript">
  var globalData = @Html.Raw(Json.Encode(Model.MyArray));
</script>

var globalData=@Html.Raw(Json.Encode(Model.MyArray));
根据所使用的ASP.NET MVC版本的不同,输出json的确切方法会有所不同,但这应该会让您走上正确的道路

一般的javascript最佳实践是为代码创建一个名称空间,然后将所有其他变量放入其中,这样就不会污染全局名称空间。所以实际上应该是这样的:

<script type="text/javascript">
  var MyApp = {};
  MyApp.dropdownData = @Html.Raw(Json.Encode(Model.MyArray));
</script>

var MyApp={};
MyApp.dropdownData=@Html.Raw(Json.Encode(Model.MyArray));
但是我提供的第一段代码可以开始使用。

leora

以下解决方案将“列表”从javascript发送到和mvc操作,我受到了启发:

var leadIds = $('input.chkTileSelector:checked').map(function () {
                                                            return { name: 'leadIds', value: $(this).parents('div.Lead').data('id') };
                                                }).get();

$.ajax({
    url: '@Url.Action("UnParkLeads", "Lead")',
    type: 'POST',
    dataType: 'json',
    data: leadIds,
    success: function (result) {
        ReloadResultGrid();
    }
}); 
你可以在这里看到这篇文章:

莱奥拉

以下解决方案将“列表”从javascript发送到和mvc操作,我受到了启发:

var leadIds = $('input.chkTileSelector:checked').map(function () {
                                                            return { name: 'leadIds', value: $(this).parents('div.Lead').data('id') };
                                                }).get();

$.ajax({
    url: '@Url.Action("UnParkLeads", "Lead")',
    type: 'POST',
    dataType: 'json',
    data: leadIds,
    success: function (result) {
        ReloadResultGrid();
    }
}); 
你可以在这里看到这篇文章: