改變你的看法是這樣的:
<% using (Html.BeginForm()) {%>
<%= Html.DropDownList("Category", Model.SelectList, new {onchange = "actualize(this);"}) %>
<div id="selectdiv">
<% Html.RenderPartial("SubCategories"); %>
</div>
<input type="submit" value="Print" />
<%= Html.ActionLink("Cancel", "Index") %>
<% } %>
<script type="text/javascript">
function actualize(obj)
{
$.ajax({
url: url,
async: true,
type: 'POST',
data: { id: obj.value },
dataType: 'text',
success: function(data) { $("#selectdiv").html(data); },
error: function() {
console.log('Erreur');
}
});
}
</script>
創建一個名爲SubCategories.aspx控制,包括在它:
<%= Html.DropDownList("SubCategory",Model.SelectList) %>
創建一個模型類
public class MyModel
{
public SelectList SelectList {get;set;}
}
創建一個控制器動作
public ActionResult SubCategories(int id)
{
MyModel model = new MyModel();
model.SelectList = new SelectList(YourRepository.GetSubCategories(id),"Id","Name");
return View(model);
}
希望看到部分視圖中的下拉列表,以便它可以重新使用。所以不要有兩個下拉菜單,而只需要一個局部視圖。使造型更容易一些,你只需要做一次。我知道這是有點多餘的一個單一的下拉列表,但在我的經驗,這然後成爲第二性質與更大的可重用組件 – griegs 2009-10-21 03:52:59
如果你讀,第二個下拉是在一個名爲SubCategories.aspx的局部視圖:) – Gregoire 2009-10-21 11:45:48
如果有另一個下降在依賴於類別和子類別的子類別之後,您是否會建議將它放在另一個部分視圖中? – AlteredConcept 2009-11-10 18:59:24