18

我想在 Chosen中使用多项选择。我有类似的技能模型,

public class Skill 
    {
        public int Id { get; set; }
        public string Name { get; set; }        
    }

这适用于我的应用程序:

    <select data-placeholder="Choose a Country..." class="chzn-select" multiple >
           <option value=""></option>
           <option value="United States">United States</option>
           <option value="Albania">Albania</option>
           <option value="Algeria">Algeria</option>
   </select>

我想用我的数据替换国家数据。在控制器中我写:

        var list = MyService.LoadAllSkills();
        ViewBag.Skills = new MultiSelectList(list, "Id", "Name");

鉴于:

@Html.ListBox("Name", ViewBag.Skills as MultiSelectList,
              new { @class = "chzn-select" } )

@Html.ListBox()@Html.DropDownList()的查看结果不一样<select>

我得到这样的结果:

在此处输入图像描述

但是,我想得到结果

在此处输入图像描述

如何更改选择的样本?

4

2 回答 2

14

我可以看到硬编码示例(您说它正在工作)与您使用 ListBox 帮助程序生成的示例之间的唯一区别是缺少该data-placeholder属性。所以:

@Html.ListBox(
    "Countries", 
    ViewBag.Skills as MultiSelectList,
    new { @class = "chzn-select", data_placeholder = "Choose a Country..." } 
)

这至少应该生成与您所说的相同的标记。如果它不起作用,那么可能您没有正确设置插件或者您有其他一些 javascript 错误。阅读插件的文档,了解它应该如何设置。

于 2012-12-08T14:49:48.943 回答
0

正如其他人提到的那样,您的问题原因似乎不是服务器端(剃刀),它实际上是客户端(很可能是您的 Jquery 插件初始化)。

可能在调用html DOM的插件初始化还没有生成的时候,把你的插件初始化脚本放在body的末尾或者里面$(document).ready(),别忘了看一下控制台看看有没有错误

快乐编码

于 2017-11-09T20:51:27.133 回答