System.StackOverflowException после HttpPost, возвращающего представление - asp mvc - PullRequest
1 голос
/ 09 февраля 2020

Я получаю сообщение об ошибке (больше информации нет): System.StackOverflowException

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

и в моем макете, как только я удаляю часть

, она работает нормально

@Html.Action("TuorMenu", "Home", new { area = "Site" })

упрощает макет

@{
Layout = null;
}
<!DOCTYPE html>
html dir="rtl" lang="fa">
<head>
</head>
<body>
    @Html.Action("TuorMenu", "Home", new { area = "Site" })
    @RenderBody()
</body>
</html>

и частичное создание, подобное этому

    [HttpGet]
    [OutputCache(Duration = 86400, VaryByParam = "none")]
    [ChildActionOnly]
    public ActionResult TuorMenu()
    {
        MenuViewModel vmg = new MenuViewModel();

        vmg.TourGroup = _repoTourGroup.Where(p => p.Id != 15).ToList();
        //vmg.BlogGroup = _repoBlogGroup.Select();
        return PartialView("_TuorMenu", vmg);
    }

...

@model test.ViewModels.Home.MenuViewModel

@{
    Layout = null;
}

 .......loading menu

Я не знаю, есть ли что-то не так с загрузкой частичного представления или просто проблема с возвратом представления после HttpPost - это просто разветвляющий плавник на других страницах, но я получаю эту ошибку, когда я пытаюсь получить доступ к представлению с помощью действия HTTP post

и по поводу HttpPost, давайте предположим, что существует представление "A", которое имел форму, которая является HttpPost, и после этого мы должны получить созданное представление, НО оно просто возвращает вышеуказанную ошибку

1 Ответ

1 голос
/ 11 февраля 2020

просто получите вашу информацию в LayoutView, если вы используете DI, сначала введите свой репо

 var _repoMenu = DependencyResolver.Current.GetService<IMenuRepository>();
 var MenuModel = _repoMenu.Select();

, а затем вместо

@Html.Action("TuorMenu", "Home", new { area = "Site" })

используйте частичный

@Html.Partial("~/Areas/.../_TourMenu.cshtml",MenuModel)
...