我正在尝试使用asp .net mvc 4创建一个菜单。
调用菜单
@{Html.RenderAction("LeftMenu", "Navigation",
new { currentPoint = ViewData["CurrentCategory"] });}
导航控制器:
public ViewResult LeftMenu(string currentPoint) {
List<NavLink> navLinks = new List<NavLink>();
navLinks.Add(new CategoryLink(null)
{
IsSelected = (currentPoint == null)
});
List<string> categories = new List<string>{
"Bicycles",
"Details"
};
foreach (var category in categories)
navLinks.Add(new CategoryLink(category){
IsSelected = (category == currentPoint)
});
return View(navLinks);
}
部分视图
@model IEnumerable<MvcWebShopApp.Controllers.NavigationController.NavLink>
<ul class="nav navbar-nav">
@foreach (var link in Model)
{
<li class = "@(link.IsSelected ? "active": "")">
<a href="@Url.RouteUrl(link.RouteValues)")>@link.Text</a>
</li>
}
</ul>
但是当我运行我的项目时,我得到了例外:
堆栈不足以安全地继续执行程序。这个可以 因为在调用堆栈或函数上有太多函数而发生 堆栈使用了太多的堆栈空间。
请帮忙。
答案 0 :(得分:7)
您实际上是渲染完整视图,而不是局部视图 这包括布局,再次渲染该视图,创建堆栈溢出。
您需要返回PartialView()
。