2
我正在使用Mvc3我有2個下拉菜單,BankBranch和城市。 在第一次查看負載我綁定兩個dropdon沒有級聯。那麼如果用戶選擇城市,我想根據那個更改bankbranch。 我很困惑,我怎麼能一起實現這兩件事。Mvc3中的級聯下拉菜單
在此先感謝。
我正在使用Mvc3我有2個下拉菜單,BankBranch和城市。 在第一次查看負載我綁定兩個dropdon沒有級聯。那麼如果用戶選擇城市,我想根據那個更改bankbranch。 我很困惑,我怎麼能一起實現這兩件事。Mvc3中的級聯下拉菜單
在此先感謝。
這篇博客文章應該讓你順利。它提供了常規表單帖子,microsoft ajax表單發佈,jquery ajax等的示例。
編輯: 通用代碼說明
型號
public class CascadeModel {
public SelectList<City> Cities { get; set; }
public SelectList<BankBranch> BankBranches { get; set;}
public int CityId { get; set; }
public int BranchId { get; set; }
}
public class Branch {
public int Id { get; set;}
public string Name { get; set; }
}
控制器:
public ActionResult BranchSelector() {
var viewData = new CascadeModel();
viewData.Cities = new SelectList(Repository.GetAllCities(), "Id", "Name", selectedCity);
viewData.BankBranches = new SelectList(Repository.GetBranchesByCity(selectedCity), "Id", "Name", "");
return View(viewData);
}
public JsonResult GetBranches(int id) {
return Json(Repository.GetBranchesByCity(id), JsonRequestBehavior.AllowGet);
}
查看:
@model CascadeModel
@Html.DropDownListFor(m => m.CityId, Model.Cities, new { style = "width:250px" })
<br />
@Html.DropDownListFor(m => m.BranchId, Model.BankBranches, new { style = "width:250px" })
<script type="text/javascript">
$(document).ready(function() {
$("#CityId").bind('change', function() {
$.ajax({
url: '/Controller/GetBranches/' + $(this).val(),
success: function(data) {
//Clear the current branch ddl
//Load the new Branch data returned from the jquery call in the branches ddl
}
});
};
});
</script>
嗨Michael,謝謝你的回覆。我之前讀過它,但這不是我想要做的。 – NewToBirtReporting
哪部分不是你想要做的?如果你來自一個asp.net web表單背景,那麼mvc的方式將會非常不同,並且在我看來更加優雅。讓我知道什麼不適合你,我會盡力讓你走向正確的方向。謝謝, –
是的,你是正確的新的mvc。我想要在視圖加載時填充2個下拉列表,然後我想在同一個下拉列表上應用級聯。選擇第一個下拉用戶的方式應該是第二次準備好選擇,或者甚至用戶不從第st下拉選擇值,然後還有一些他可以選擇的值。 – NewToBirtReporting