사용자가 카테고리/하위 카테고리 구조를 탐색 한 다음 사용자가 새 카테고리를 추가 할 수 있도록하는 탐색 시스템을 구축하려고합니다. 여기 ajax에서 데이터를 가져 오기 부모 뷰에서 사용할 부분 뷰
내 제어기는
... 여기public ActionResult ManageCategories()
{
var categoryService = new CategoryService(_unitOfWork);
CategoryListViewModel model = categoryService.GetCategories(null);
return View("ManageCategories", model);
}
public PartialViewResult GetCategories(int? parentCategoryId)
{
var categoryService = new CategoryService(_unitOfWork);
CategoryListViewModel model = categoryService.GetCategories(parentCategoryId);
return PartialView("GetCategories", model);
}
[HttpPost]
public ActionResult AddNewCategory(string newCategoryName, int? parentCategoryId)
{
...code to add new category to database...
// just redirect for now...
return RedirectToAction("ManageCategories", parentCategoryId);
}
내 간체 도면이다 .. 여기서
@model CategoryListViewModel
<ul id="category-explorer">
@Html.Action("GetCategories", new { parentCategoryId = Model.ParentCategoryId })
</ul>
단지 주어진 하위 카테고리 목록을 표시하는 제 부분 단면도이다 상위 카테고리 ...
@model CategoryListViewModel
@{
AjaxOptions ajaxOpts = new AjaxOptions
{
UpdateTargetId = "category-explorer",
};
}
@foreach(Category category in Model.Categories)
{
<li>@Ajax.ActionLink(@category.Name, "GetCategories", new {parentCategoryId = category.CategoryId}, ajaxOpts)</li>
}
null의 카테고리는 최상위 카테고리를 의미합니다. 내 부분보기 내에서 아약스를 다시 사용하여 동일한 부분 뷰를 호출하지만 선택한 범주를 parentCategoryId로 전달하므로 재귀 구조가됩니다.
제 문제점은 내 ManageCategories보기가 사용자가 중첩 된 parentCategoryId의 최종 값을 얻는 방법입니다. 나는 그것이 'AddCategory'를 적절하게 호출 할 수 있도록이 값을 사용해야하는 양식을 기본보기에 가지고 있습니다.
아약스를 위로 설정하고보기가 정확하다고 생각합니다. 이것은 정적 변수를 저장하는 것에 의지하지 않고 깨끗하게 달성 할 수있는 방법에 다소 혼란 스러울뿐입니다.
감사합니다. 시도해 보겠습니다.'AddCategory'의 관점에서 간단히 말해서 ManageCategories 페이지에 입력 텍스트 상자 (카테고리 이름)가있는 양식을 만들 계획이며 parentCategoryId를 양식 경로 값으로 선택한 사용자를 바인딩해야하므로 제출시 모두 매개 변수로 'AddCategory'메소드로 전달됩니다. ManageCategories보기에서 s_currentCategory에 액세스하여 양식 제출 값에 사용할 수 있습니까? –