部分视图:mscorlib.dll 中发生类型 'System.StackOverflowException' 的未处理异常

Partial View: An unhandled exception of type 'System.StackOverflowException' occurred in mscorlib.dll

我知道已经有很多关于此的帖子,但我似乎无法修复错误。

我在局部视图中收到上述错误(标题),我认为这意味着我有一个无限循环,但我不确定为什么会这样。请看下面:

家庭控制器

public ActionResult UserTable()
        {
            manager = new Manager();
            var data = manager.GetAllUsers();
            var userDetails = from u in data
                              select new UserDetail
                              {
                                  UserID = u.Id,
                                  Username = u.Name,
                                  UserLogin = u.Login,
                                  FirstName = u.FirstName,
                                  Surname = u.Surname,
                                  Email = u.Email,
                                  Active = Convert.ToInt32(u.Active),
                                  RightID = u.RightsId,
                                  GroupID = u.GroupsId,
                              };
            return View(userDetails.ToList());
        }

用户表(局部视图)

@model IEnumerable<WebApplication1.Models.UserDetail>
@Html.Action("UserTable")
<br />
<div>
    <table class="table">
        <thead>
            <tr>
                //Table Headers
            </tr>
        </thead>
        <tbody>
            @foreach (var item in Model)
            {
                <tr>
                    //Various @Html.DisplayFor()
                </tr>
            }
        </tbody>
    </table>
</div>

索引(查看)

@{Html.RenderPartial("UserTable");}

如果你想让我澄清任何事情或者你想要任何进一步的细节,请随时询问。 提前谢谢你。

P.S错误发生在 UserTable 方法中。

因此,在评论中 Stephen 和 Alexander 的提示的帮助下,我找到了解决问题的方法。对我来说,如果我使用 Render Partial,它不会为每个局部视图执行方法,因此返回 null,这就是我尝试 Html.Action 的原因,但这会导致无限循环,但是如果我使用 Render Action,则解决方案将执行方法,希望这对遇到同样问题的人有所帮助。