Исключение переполнения стека ASP.NET MVC при вызове частичного представления с главной страницы - PullRequest
4 голосов
/ 12 мая 2010

Я получаю ошибку переполнения стека, когда пытаюсь вызвать частичное представление от мастера.

Частичное представление:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>

<form action="/members/TestLoginProcess/" method="post">
U: <input type="text" name="mUsername" /><br />
P: <input type="password" name="mHash" /><br />
<button type="submit">Log In</button>
</form>

Действие в контроллере «Члены»

[ChildActionOnly]
    public ActionResult TestLogin()
    {
        return PartialView();
    }

Затем я вызываю частичное представление с главной страницы :

<!--Excerpt from wopr.master--> 
<%= Html.Action("TestLogin", "Members")%>

Когда я перехожу в режим отладки, главная страница возвращает эту ошибку:

{Невозможно оценить выражение, поскольку текущий поток находится в состоянии переполнения стека.}

Я не понимаю, как эта ошибка вызывается. любая помощь будет высоко ценится!

Ответы [ 3 ]

15 голосов
/ 25 ноября 2010

Я видел эту ошибку раньше. В моем случае это произошло, когда я вернул вызов методов View (), а не PartialView () для Html.RenderAction или Html.Action в моих методах действия.

Надеюсь, это кому-нибудь поможет.

1 голос
/ 10 августа 2010

Я получил ту же самую вещь, потому что я загружал пользовательский элемент управления, который был по существу строкой меню, но был полон Html.Action (), а не Html.ActionLink (), поэтому он постоянно вызывал Action и потому что вернулся на страницу, которая унаследовала ту же главную страницу, снова вызывал ее ... и снова ... и снова.

Так что да, моя проблема была в том, что я использовал неправильное ключевое слово.

1 голос
/ 12 мая 2010

Что происходит, когда вы меняете

<%= Html.Action("TestLogin", "Members")%>

до

<%= Html.RenderPartial("TestLogin", "Members");%>

Пожалуйста, обратите внимание, что есть; в конце команды. Пропустите это, и вы получите еще одну ошибку.

...