選択済み で複数選択を使用したい。私はスキルモデルを持っています、
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>
とは異なります
私はその結果を得ます:
しかし、私は結果を得たいです
選択したサンプルを変更するにはどうすればよいですか?
ハードコーディングされた例(動作していると述べた)とListBoxヘルパーで生成した例の違いは、data-placeholder
属性がないことだけです。そう:
@Html.ListBox(
"Countries",
ViewBag.Skills as MultiSelectList,
new { @class = "chzn-select", data_placeholder = "Choose a Country..." }
)
これは少なくとも、あなたが言っていることが機能しているのと同じマークアップを生成するはずです。それが機能しない場合は、おそらくプラグインを正しく設定していないか、他のJavaScriptエラーがあります。プラグインのセットアップ方法について、プラグインのドキュメントをお読みください。
他の人物が述べたように、問題の原因はサーバー側(かみそり)ではなく、実際にはクライアント側(おそらくJqueryプラグインの初期化)にあるようです。
おそらくhtml DOMと呼ばれるプラグインの初期化がまだ生成されていない場合は、プラグインの初期化スクリプトを本文の最後または$(document).ready()
の中に置き、コンソールを確認してそこにあるかどうかを確認してくださいエラーがあります
幸せなコーディング