堆栈不足以继续安全地执行程序

时间:2013-12-03 18:12:24

标签: asp.net-mvc-4

我正在尝试使用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>

但是当我运行我的项目时,我得到了例外:

  

堆栈不足以安全地继续执行程序。这个可以   因为在调用堆栈或函数上有太多函数而发生   堆栈使用了太多的堆栈空间。

请帮忙。

1 个答案:

答案 0 :(得分:7)

您实际上是渲染完整视图,而不是局部视图 这包括布局,再次渲染该视图,创建堆栈溢出。

您需要返回PartialView()