2015-07-22 3 views
1

Я знаю, что есть много сообщений об этом, но я не мог исправить ошибку.Частичный вид: Необработанное исключение типа «System.StackOverflowException» произошло в mscorlib.dll

Я получаю вышеуказанную ошибку (заголовок) в своем частичном представлении, который, я считаю, означает, что у меня бесконечный цикл, но я не уверен, почему это происходит. Пожалуйста, смотрите ниже:

HomeController

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()); 
     } 

UserTable (PartialView)

@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> 

Index (Просмотр)

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

Если вы хотите, чтобы я прояснил все, или вы хотите получить более подробную информацию, пожалуйста, не стесняйтесь спрашивать. Спасибо заранее.

P.S Ошибка возникает в методе UserTable.

+0

Вы пытаетесь отобразить представление UserTable от себя по адресу '@ Html.Action (« UserTable »)'. Бесконечная рекурсия. Это опечатка или она предназначена для определенной цели? –

+0

Что такое '@ Html.Action (« UserTable »)'? Вам нужно показать вам мнение для этого - общая причина mos заключается в том, что у вас есть 'Html.Action()' или 'Html.Partial()', в свою очередь вызывающий себя, создающий бесконечный цикл. –

+0

Привет, ребята, у меня была встреча, поэтому я не видел этого до сих пор, я использовал @ Html.Action, потому что, если я этого не сделаю, таблица пользователя вернет «null», поскольку метод таблицы пользователей не выполняется по какой-либо причине , hense @ Html.Action, любые предложения приветствуются. @ Александр Козлов – hjardine

ответ

0

Итак, я нашел решение своей проблемы с помощью подсказок от Стивена и Александра в комментариях. Для меня, если я использовал Render Partial, он не выполнял метод для каждого частичного представления, поэтому возвращал значение null, поэтому я попробовал Html.Action, но это вызывает бесконечный цикл, однако, если я использую Render Action, тогда решение выполнит Методы, Надеюсь, это поможет любому, у кого есть такая же проблема.