부분 뷰를 사용하여 카테고리 사이드 메뉴를 작성하는 책에서 자습서를 수행 중이었습니다. 현재 선택된 범주를 표시하는 기능이 구현 될 때까지 문제가 없습니다.PartialView 로직으로 데이터 전달하기
과 같이 문제가 발생하여 현재 선택된 범주를 부분보기에 전달하는 데 논리가없는 것처럼 보입니다. 당신이 NavController 보면 선택한 카테고리 ID가
전달되지 않는 볼 수있는 메뉴 방법은 선택 범주 ID를 받아들이으로
레이아웃 CSHTML 파일이 표시 카테고리
@{
Html.RenderAction("Menu", "Nav");
}
에 대한이
public PartialViewResult Menu(int selCatID = -1)
{
ViewBag.SelectedCatID = selCatID;
return PartialView(repository.Categories);
}
그러나 layout.html 파일에서 호출하면 매개 변수없이 selCatID가 호출되는 것으로 보입니다. 항상 일 수 -1 여기
는@foreach (var cat in Model)
{
@Html.RouteLink(cat.CategoryName , new {
controller = "Company", action="List"
, catID=cat.ID, page= 1},
new { @class = cat.ID == ViewBag.SelectedCatID ? "selected" : null }
)
}
하기위한 뷰에 전달되는 메인 컨트롤러 (회사)에서 선택한 CATID를 보여줍니다 눈에 보이는 코드이있을 것 같지 않습니다 메뉴의보기이다 NavController.
주 컨트롤러가 선택된 ID에 대한 뷰백을 설정해야한다고 생각했습니다. 다음과 같이 변경되었지만 작동했지만 올바른 기술인지 확실하지 않습니다. 내가 제대로하고 있는지 궁금 해서요 아니면 뭔가 놓친 적이 있습니까?. 한 매개 변수를 전달 레이아웃 파일
: 메인 엔티티 제어기 (CompanyController)에
Html.RenderAction("Menu", "Nav", new { selCatID = ViewBag.SelCatID });
는
public class CompanyController : Controller
{
.....
public ViewResult List(int catID = -1, int page = 1)
{
CompaniesListViewModel viewModel = new CompaniesListViewModel
{
...........
};
ViewBag.SelectedCatID = catID;
return View(viewModel);
catID가 -1을받는 액션이 왜 그렇습니까? –
CatID! = catID. –
TravisJ 여기에 입력 할 때 오타가 수정되었습니다. 책에서이 서식을 사용하고 있었기 때문에이 사용법을 사용하지 않았습니다. Andre - -1이 있으므로 catID는 선택적 매개 변수입니다. -1은 카테고리가 선택되지 않았 음을 나타냅니다. – pt123