最好的方法是使用AJAX來做到這一點。您必須將change
事件掛接到您的第一個選擇框,一旦更改,您將執行一個AJAX請求,並將所選值輸入Action
。該操作將返回一個JSON列表,該列表將被解析並放入下一個select box
。
更新
的JSON返回動作可以匿名類型真的,還是SelectListItem
一個IEnumerable
模型。使用Linq
:`mycollection.select(item => new SelectListItem(){Name = item.Name,Value = item.ID.ToString()});
如果我們假設在網頁看起來是這樣的:
<form>
<select id="MainCat" name="MainCatID">
<option value="1">First option</option>
<option value="2">First option</option>
<option value="3">First option</option>
</select>
<select id="SubCat" name="SubCatID" disabled="disabled">
<option value=""> -- Please select a main category -- </option>
</select>
</form>
您的模型將如下所示:
public class MyModel {
public int MainCatID {get;set;}
public int SubCatID {get;set;}
public IEnumerable<SelectListItem> MainCats {get;set;}
}
當然你可以添加驗證屬性等
Thnaks @Gidon點 - 什麼模型會是什麼樣子? – Craig 2011-01-26 07:33:40