次のような単純なHTMLにより、選択した値を持つonchange
イベントを処理しています。
_<select onchange="location = this.value;">
<option value="/product/categoryByPage?PageSize=15" selected="selected">15</option>
<option value="/product/categoryByPage?PageSize=30" selected="selected">30</option>
<option value="/product/categoryByPage?PageSize=50" selected="selected">50</option>
</select>
_
このようにする:
_List<SelectListItem> items = new List<SelectListItem>();
string[] itemArray = {"15","30","50"};
for (int i = 0; i < itemArray.Count(); i++)
{
items.Add(new SelectListItem
{
Text = itemArray[i],
Value = "/product/categoryByPage?pageSize=" + itemArray[i]
});
}
ViewBag.CategoryID = items;
@Html.DropDownList("CategoryID")
_
@Html.DropDownList()
でonchange
を処理する方法
DropDownList
メソッドの別のオーバーロードを使用できます。必要なものを選択し、html属性を持つオブジェクトを渡します。
@Html.DropDownList("CategoryID", null, new { @onchange="location = this.value;" })
Dknaackの方法は私にとってはうまくいきません、私はこの解決策も見つけました:
@Html.DropDownList("Chapters", ViewBag.Chapters as SelectList,
"Select chapter", new { @onchange = "location = this.value;" })
どこ
@Html.DropDownList(controlName, ViewBag.property + cast, "Default value", @onchange event)
コントローラーでは、以下を追加できます。
DbModel db = new DbModel(); //entity model of Entity Framework
ViewBag.Chapters = new SelectList(db.T_Chapter, "Id", "Name");