-1
我有兩個連接到數據庫的下拉列表,其中一個名爲Distritos,另一個名爲Concelhos,而不選擇distritos,concelhos應顯示爲空,用戶選擇distritos中的一個詞,Concelhos應該顯示。我想讓它像一個國家城市的關係。 這是我在我的控制器:如何在未選擇另一個時顯示空的下拉列表
public ActionResult getcidades(int? distrito = null)
{
var concelho =
Db.Concelhos.OrderBy(r => r.Nome) as IQueryable<Concelho>;
if (distrito != null)
{
concelho = concelho.Where(t => t.Distritos.Id == distrito);
}
return Json(concelho.Select(r => new { Nome = r.Nome, r.Id }), JsonRequestBehavior.AllowGet);
}
這就是我在我的觀點:
$("#Distrito").on("change", function() {
var valor = $(this).val();
$.ajax({
type: "get",
url: "@Url.Action("
getcidades ","
PiHelper ")",
data: {
distrito: valor
}
})
.done(function(concelho) {
var dropdown = $("#Concelho");
dropdown.empty().focus();
console.log(concelho, dropdown)
for (var i = 0; i < concelho.length; i++) {
$("<option>")
.attr("value", concelho[i].Id)
.text(concelho[i].Nome)
.appendTo(dropdown);
}
})
})
是什麼問題? – BenG
當我不選擇「Distrito」(意思是狀態)時,它應該顯示一個空白(下拉列表中的空白)「Cidade」(Cidade表示城市)。 –
您需要編輯您的問題以解釋問題。如果您在第一個下拉列表中選擇了「null」選項,那麼它將調用您的控制器方法,該方法返回所有'Concelhos'您應該測試'null',如果是,則清空第二個下拉列表並且不調用該方法。然後將控制器代碼更改爲'public ActionResult getcidades(int distrito){var concelho = Db.Concelhos.OrderBy(r => r.Nome).. Where(t => t.Distritos.Id == distrito);返回Json(....); }' –