Справка по синтаксису ASP.NET MVC3 Razor - я застреваю в бесконечном цикле

I ' m пытается преобразовать небольшое приложение mvc2 в синтаксис mvc3 razor. В моем приложении mvc2 я использую механизм просмотра aspx с главной страницей. Следуя примеру из книги Стивена Сандерсона Pro MVC2 2-е издание, на главной странице я вызываю действие контроллера, которое визуализирует частичное представление для каждого объекта. Это работает правильно.

 <div id="categories">
    <% Html.RenderAction("Menu", "Nav"); %>
</div>

с помощью _layout.cshtml и бритвы Я пробую это. Вот где возникает моя проблема.

 <div id="categories">
    @{ 
        Html.RenderAction("Menu", "Nav"); 

    }
</div>

Это вызывает бесконечный цикл, и я получаю, как ни странно, исключение StackOverflowException. Может ли кто-нибудь помочь мне исправить проблему? Вот код метода контроллера.

  public ViewResult Menu(string personId)
    {
        Func<string, NavLink> makeLink = pId => new NavLink
        {
            Text = pId ?? "Home"
            , RouteValues = new RouteValueDictionary(new { controller = "Person", action = "Person"})

        };

        List<NavLink> navLinks = new List<NavLink> {makeLink(null)};


        Func<Person, NavLink> makeLink2 = p => new NavLink
        {
            Text = p.Name ?? "Home"
            , RouteValues = new RouteValueDictionary(new { controller = "Person", action = "Person", personId = p.Id })

        };

        var people = usersRepository.People.OrderBy(x => x.Name);
        var peopleLinks = EnumerableHelpers.MakeLinks(people, makeLink2);

        navLinks.AddRange(peopleLinks);

        return View("_menu", navLinks);
    }

Любая помощь или советы приветствуются.

Спасибо,
Следуя примеру из книги Стивена Сандерсона Pro MVC2 2-е издание, на главной странице я вызываю действие контроллера, которое визуализирует частичное представление для каждого объекта. Это работает правильно.

 <div id="categories">
    <% Html.RenderAction("Menu", "Nav"); %>
</div>

с помощью _layout.cshtml и бритвы Я пробую это. Вот где возникает моя проблема.

 <div id="categories">
    @{ 
        Html.RenderAction("Menu", "Nav"); 

    }
</div>

Это вызывает бесконечный цикл, и я получаю, как ни странно, исключение StackOverflowException. Может ли кто-нибудь помочь мне исправить проблему? Вот код метода контроллера.

  public ViewResult Menu(string personId)
    {
        Func<string, NavLink> makeLink = pId => new NavLink
        {
            Text = pId ?? "Home"
            , RouteValues = new RouteValueDictionary(new { controller = "Person", action = "Person"})

        };

        List<NavLink> navLinks = new List<NavLink> {makeLink(null)};


        Func<Person, NavLink> makeLink2 = p => new NavLink
        {
            Text = p.Name ?? "Home"
            , RouteValues = new RouteValueDictionary(new { controller = "Person", action = "Person", personId = p.Id })

        };

        var people = usersRepository.People.OrderBy(x => x.Name);
        var peopleLinks = EnumerableHelpers.MakeLinks(people, makeLink2);

        navLinks.AddRange(peopleLinks);

        return View("_menu", navLinks);
    }

Любая помощь или советы приветствуются.

Спасибо,
Следуя примеру из книги Стивена Сандерсона Pro MVC2 2-е издание, на главной странице я вызываю действие контроллера, которое визуализирует частичное представление для каждого объекта. Это работает правильно.

 <div id="categories">
    <% Html.RenderAction("Menu", "Nav"); %>
</div>

с помощью _layout.cshtml и бритвы Я пробую это. Вот где возникает моя проблема.

 <div id="categories">
    @{ 
        Html.RenderAction("Menu", "Nav"); 

    }
</div>

Это вызывает бесконечный цикл, и я получаю, как ни странно, исключение StackOverflowException. Может ли кто-нибудь помочь мне исправить проблему? Вот код метода контроллера.

  public ViewResult Menu(string personId)
    {
        Func<string, NavLink> makeLink = pId => new NavLink
        {
            Text = pId ?? "Home"
            , RouteValues = new RouteValueDictionary(new { controller = "Person", action = "Person"})

        };

        List<NavLink> navLinks = new List<NavLink> {makeLink(null)};


        Func<Person, NavLink> makeLink2 = p => new NavLink
        {
            Text = p.Name ?? "Home"
            , RouteValues = new RouteValueDictionary(new { controller = "Person", action = "Person", personId = p.Id })

        };

        var people = usersRepository.People.OrderBy(x => x.Name);
        var peopleLinks = EnumerableHelpers.MakeLinks(people, makeLink2);

        navLinks.AddRange(peopleLinks);

        return View("_menu", navLinks);
    }

Любая помощь или советы приветствуются.

Спасибо,
m, как ни странно, возникает исключение StackOverflowException. Может ли кто-нибудь помочь мне исправить проблему? Вот код метода контроллера.

  public ViewResult Menu(string personId)
    {
        Func<string, NavLink> makeLink = pId => new NavLink
        {
            Text = pId ?? "Home"
            , RouteValues = new RouteValueDictionary(new { controller = "Person", action = "Person"})

        };

        List<NavLink> navLinks = new List<NavLink> {makeLink(null)};


        Func<Person, NavLink> makeLink2 = p => new NavLink
        {
            Text = p.Name ?? "Home"
            , RouteValues = new RouteValueDictionary(new { controller = "Person", action = "Person", personId = p.Id })

        };

        var people = usersRepository.People.OrderBy(x => x.Name);
        var peopleLinks = EnumerableHelpers.MakeLinks(people, makeLink2);

        navLinks.AddRange(peopleLinks);

        return View("_menu", navLinks);
    }

Любая помощь или советы приветствуются.

Спасибо,
m, как ни странно, возникает исключение StackOverflowException. Может ли кто-нибудь помочь мне исправить проблему? Вот код метода контроллера.

  public ViewResult Menu(string personId)
    {
        Func<string, NavLink> makeLink = pId => new NavLink
        {
            Text = pId ?? "Home"
            , RouteValues = new RouteValueDictionary(new { controller = "Person", action = "Person"})

        };

        List<NavLink> navLinks = new List<NavLink> {makeLink(null)};


        Func<Person, NavLink> makeLink2 = p => new NavLink
        {
            Text = p.Name ?? "Home"
            , RouteValues = new RouteValueDictionary(new { controller = "Person", action = "Person", personId = p.Id })

        };

        var people = usersRepository.People.OrderBy(x => x.Name);
        var peopleLinks = EnumerableHelpers.MakeLinks(people, makeLink2);

        navLinks.AddRange(peopleLinks);

        return View("_menu", navLinks);
    }

Любая помощь или советы приветствуются.

Спасибо,
~ ck в Сан-Диего

11
задан Hcabnettek 22 November 2010 в 16:54
поделиться