我目前正在使用MVC4。在我的数据库中,我有一个名为Categories的表,它与ParentCategory具有递归关系。现在我希望用户能够选择类别,子类别,子子类别......等等。 如何通过另一个的结果动态添加部分视图? 显示和评估单个部分视图是没有问题的。 我现在拥有的是: 视图:
<script>
$(document).ready(function () {
$('#CategoryDropDown').change(function () {
var CategoryId = $("#CategoryDropDown").val();
$("#CascadingCategories").load('@(Url.Action("CategoryIndexChanged", "Database", null, Request.Url.Scheme))?CategoryId=' + CategoryId);
});
});
</script>
<!-- random markup -->
<div id="CascadingCategories">
<p>
<span style="width:150px; display:inline-block; line-height:42px;">Category:</span>
@{Html.RenderPartial("_PartialCascadingCategoryDropDown", Model);}
</div>
部分视图:
@Html.DropDownList("CategoryDropDown", new SelectList(Model.Categories, "CategoryId", "CategoryDescription"), "Select a Category", new { @class = "form-control" })
控制器:
public ActionResult CategoryIndexChanged(int? CategoryId)
{
SearchModel model = new SearchModel();
model.GetCategoryDropDownItems(CategoryId ?? 0);
return PartialView("__PartialCascadingCategoryDropDown", model);
}
我的想法是现在将部分视图称为递归,如:
<!-- this will ofc result in an infinite loop-->@{//Html.RenderPartial("_PartialCascadingCategoryDropDown", Model);}}
,但只有在先前列表发生变化时才会出现。
一些想法和问题:
对我有什么帮助: