简体   繁体   English

Select2:设置下拉列表的默认值,数据取自 C# Model in razor 语法

[英]Select2: Set Default value for list of dropdown items, data obtained from C# Model in razor syntax

I have a select2 drop down and I want to select default values for the list items.我有一个 select2 下拉菜单,我想要 select 列表项的默认值。 It works fine when I use hard code values for setting the default values of the dropdown like this $('#PlatFormTitle').val(['1','2','3']);当我使用硬代码值设置下拉菜单的默认值时,它工作正常$('#PlatFormTitle').val(['1','2','3']);

But I want to select values based on the data obtained from the model.但我想根据从 model 获得的数据得出 select 值。 Here is the code I am trying can someone please identify what am I doing wrong here.这是我正在尝试的代码,有人可以确定我在这里做错了什么。

    var PlateForms = [];

    var x;
    @foreach(var PlateForm in Model.UserPlateFormList)
    {
        @:x = '@PlateForm';
        @:PlateForms.push(x);
    } 
    $('#PlatFormTitle').val(PlateForms);
    $('#PlatFormTitle').trigger('change');

I tried this as well.我也试过这个。

$('#PlatFormTitle').val(JSON.stringify(PlateForms));
$('#PlatFormTitle').trigger('change');

I test with your code,and it can work,here is the demo:我用你的代码测试,它可以工作,这里是演示:

Model: Model:

public class Model1 {
        public List<int> UserPlateFormList { get; set; }
    }

Controller: Controller:

public IActionResult Index()
        {
            Model1 m = new Model1 { UserPlateFormList = new List<int> { 1, 2, 3 } };
            return View(m);
        }

View:看法:

<select id="PlatFormTitle" class="js-example-basic-multiple" multiple="multiple" style="width:200px">
    <option value='1'>1</option>
    <option value='2'>2</option>
    <option value='3'>3</option>
    <option value='4'>4</option>
    <option value='5'>5</option>
    <option value='6'>6</option>
</select>

js: js:

<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/js/select2.min.js"></script>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/css/select2.min.css" />
 <script>
        $(function () {
            $('.js-example-basic-multiple').select2();
            var PlateForms = [];
            var x;
            @foreach (var PlateForm in Model.UserPlateFormList)
            {
                @:x = '@PlateForm';
                @:PlateForms.push(x);
            }
                $('#PlatFormTitle').val(PlateForms);
                $('#PlatFormTitle').trigger('change');
        });
</script>

result:结果:

在此处输入图像描述

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM