1
我實現了我的級聯下拉列表與MVC3幾乎完全在MVC3級聯下拉和JSON對象
Easiest way to create a cascade dropdown in ASP.NET MVC 3 with C#
我的觀點作爲解釋有這樣的
<script type="text/javascript">
$(function() {
$('#CategoryID').change(function() {
var selectedCategoryId = $(this).val();
$.getJSON('@Url.Action("SelectCategory")', { categoryid: selectedCategoryId }, function (subcategories) {
var subsSelect = $('#SubCategoryID');
subsSelect.empty();
$.each(subcategories, function (index, subcat) {
subsSelect.append(
$('<option/>')
.attr('value', subcat.SubCategoryID)
.text(subcat.SubCategoryName)
);
});
});
});
});
</script>
我的控制器有這樣的
public ActionResult SelectCategory(int categoryid)
{
var subs = db.SubCategories.Where(s => s.CategoryID == categoryid).ToList();
return Json(subs, JsonRequestBehavior.AllowGet);
}
而那沒有奏效。
但是,它工作時,我修改了控制方式如下:
public class JsonSubCat
{
public int SubCategoryID { get; set; }
public string SubCategoryName { get; set; }
}
public ActionResult SelectCategory(int categoryid)
{
var subs = db.SubCategories.Where(s => s.CategoryID == categoryid).ToList();
var testsubs = new List<JsonSubCat>();
foreach (var sub in subs)
{
testsubs.Add(new JsonSubCat() { SubCategoryID = sub.SubCategoryID, SubCategoryName = sub.SubCategoryName });
}
return Json(testsubs, JsonRequestBehavior.AllowGet);
}
貌似轉換我的實體,我從數據源到適當的格式獲得的問題。 執行此操作的正確方法是什麼?
你應該能夠使用螢火蟲或類似的看到你的第一選擇分類Ajax響應行動。看看它是如何返回JSON對象,並確保你的JS匹配它的格式 – Daveo 2012-07-09 01:55:40