【问题标题】:System.StackOverflowException after HttpPost returning view - asp mvcHttpPost返回视图后的System.StackOverflowException - asp mvc
【发布时间】:2020-02-09 12:37:57
【问题描述】:

我得到的错误是这个(没有更多信息): 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 发布操作访问视图时出现该错误

关于 HttpPost, 假设有一个视图“A”的表单是 HttpPost,然后触发,我们应该得到创建的视图,但它只是返回上述错误

【问题讨论】:

    标签: c# asp.net-mvc razor razorengine


    【解决方案1】:

    只需在 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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-26
      • 2023-03-16
      • 2020-06-18
      相关资源
      最近更新 更多