我想使用多个选择 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()与<{1}}不一样
我得到了这样的结果:
但是,我希望得到结果
如何更改选择样本?
答案 0 :(得分:14)
我可以在硬编码示例(您声明工作)与使用ListBox帮助程序生成的示例之间看到的唯一区别是缺少data-placeholder
属性。所以:
@Html.ListBox(
"Countries",
ViewBag.Skills as MultiSelectList,
new { @class = "chzn-select", data_placeholder = "Choose a Country..." }
)
这应该至少生成与您所说的工作相同的标记。如果它不起作用,那么可能你没有正确设置插件或你有一些其他的javascript错误。阅读插件的文档,了解如何设置它。
答案 1 :(得分:0)
正如其他人提到的,似乎你的问题原因不是服务器端(razor),它实际上是客户端(很可能是你的Jquery插件初始化)。
可能在尚未生成调用html DOM的插件初始化时,将插件初始化脚本放在正文末尾或$(document).ready()
内,并且不要忘记查看控制台以查看是否有任何错误
快乐编码