我没有想法,但我猜是因为我是asp.net中的菜鸟。 我有一个MVC3项目,我的想法是有两个部分:
Section Main用于显示表格和新闻以及进入不同页面时更改的所有员工。 Section Main_profile用于显示当前登录用户的配置文件信息(名称,电子邮件等)。这是问题所在。我知道我需要将Main_profile的代码显示在_Layout.cshtml中,因为我希望始终显示该信息。我试过这个:
<section id="main_profile">
@Html.Action("Profile", "Person", new { name = User.Identity.Name })
</section>
Profile是我PersonController中的一个方法,如下所示:
public ViewResult Profile(string name)
{
string person_n = name;
return View(db.Persons.Where(s => s.Username.Equals(person_n)));
}
最后,有一个Profile的视图:
@model IEnumerable<Bachelor.Models.Person>
<h2>Your profile</h2>
<table border = "1">
<tr>
<th>
Username
</th>
<th>
Birthday
</th>
<th>
Education
</th>
<th>
Email
</th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Username)
</td>
<td>
@Html.DisplayFor(modelItem => item.Birthday)
</td>
<td>
@Html.DisplayFor(modelItem => item.Education)
</td>
<td>
@Html.DisplayFor(modelItem => item.Email)
</td>
</tr>
但我得到的是&#34;未处理的类型&#39; System.StackOverflowException&#39;发生在未知模块中。&#34;
不知道这可能与它有关,但在主要部分,在某些页面上有一个显示的记录表。 我在这里做错了什么?
答案 0 :(得分:0)
将部分中的Layout
设置为null。正在做的是以递归方式调用自己:
@{ Layout = null; }