Pro Asp.net MVC2 책의 Chapter-5에서 예제를 다시 만들려고합니다. 하지만 곧 메뉴 코드 서버를 추가하면 작동이 멈 춥니 다. 코드에 문제가 있습니까?Pro Asp.net mvc 2 : 예제의 문제
public class NavController : Controller
{
private IProductRepository productsRepository;
public NavController(IProductRepository productsRepository)
{
this.productsRepository = productsRepository;
}
public ViewResult Menu()
{
Func<string, NavLink> makeLink = categoryName => new NavLink
{
Text = categoryName ?? "Home",
RouteValues = new RouteValueDictionary(new {
controller = "Products", action = "List", category = categoryName, page = 1
})
};
List<NavLink> navLinks = new List<NavLink>();
navLinks.Add(makeLink(null));
var categories = productsRepository.Products.Select(x => x.Category);
foreach (string categoryName in categories.Distinct().OrderBy(x => x))
navLinks.Add(makeLink(categoryName));
return View(navLinks);
}
}
Menu.cshtml
@model IEnumerable<SStore.WebUI.Models.NavLink>
@foreach (var link in Model)
{
Html.RouteLink(link.Text, link.RouteValues);
}
내 마스터 페이지에서이 줄을 제거하면 다음 서버가
@{
Html.RenderAction("Menu", "Nav");
}
그렇지 않으면이 오류
어떻게 재귀입니까? Html.RenderAction은 한 번만 호출됩니다. – coure2011
@ coure06 네,하지만이 행동 안에는 당신이보기를 돌려줍니다. 이 뷰에는 마스터가 있습니다. 이 주인은 RenderAction을 다시 같은 액션으로 호출합니다. –
이것은 프로 오류입니다. LoL – foobar