Javascript 在asp.net-mvc站点中,存储列表客户端以切换下拉选择选项的最佳方式是什么
我有一个页面,我加载了一个选择下拉框,但我想让javascript代码将这个列表切换到一组不同的选项 我有清除和重新填充javascript中选择列表框的代码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 = ''; }
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();
}
});
你可以在这里看到这篇文章: