如何在 mvc 4 中使用多项选择?

Posted

技术标签:

【中文标题】如何在 mvc 4 中使用多项选择?【英文标题】:How to use multiple select in mvc 4? 【发布时间】:2012-11-26 10:39:08 【问题描述】:

我想使用多选 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()的查看结果与&lt;select&gt;不一样

我得到了这样的结果:

但是,我想得到结果

如何更改选择的样本?

【问题讨论】:

尝试任何 jquery 插件。 @Kundan Singh Chouhan,你能分享任何其他链接吗?对于其他插件 【参考方案1】:

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

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

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

【讨论】:

那么您可能在设置与 ASP.NET MVC 完全无关的插件时遇到了其他问题。就服务器端代码而言,它应该生成与您在问题中显示的内容完全相同的标记。还要注意,在服务端使用data_placeholder时,helper在生成对应属性时会自动将其转换为data-placeholder【参考方案2】:

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

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

快乐编码

【讨论】:

以上是关于如何在 mvc 4 中使用多项选择?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Siri 语音命令验证用户在多项选择题中的回答

MVC 4,选择自动完成值时如何填充 3 个文本框?

如何在 laravel 8 中保存多项选择?

任何人都知道如何在 swift 操场上进行多项选择游戏? [关闭]

如何从模型中呈现多项选择字段

如何获取多项选择的结果并合并为一行