【发布时间】:2011-05-13 23:22:33
【问题描述】:
我正在尝试将小型 mvc2 应用程序转换为 mvc3 razor 语法。在我的 mvc2 应用程序中,我使用带有母版页的 aspx 视图引擎。按照 Steven Sanderson 的 Pro MVC2 书第 2 版中的示例,在母版页中,我调用了一个控制器操作,该操作为每个实体呈现部分视图。这工作正常。
<div id="categories">
<% Html.RenderAction("Menu", "Nav"); %>
</div>
我正在尝试使用 _layout.cshtml 和 razor。这就是我的问题所在。
<div id="categories">
@{
Html.RenderAction("Menu", "Nav");
}
</div>
这导致了一个无限循环,奇怪的是我得到了一个 StackOverflowException。谁能帮我纠正这个问题?这是控制器方法代码。
public ViewResult Menu(string personId)
{
Func<string, NavLink> makeLink = pId => new NavLink
{
Text = pId ?? "Home"
, RouteValues = new RouteValueDictionary(new { controller = "Person", action = "Person"})
};
List<NavLink> navLinks = new List<NavLink> {makeLink(null)};
Func<Person, NavLink> makeLink2 = p => new NavLink
{
Text = p.Name ?? "Home"
, RouteValues = new RouteValueDictionary(new { controller = "Person", action = "Person", personId = p.Id })
};
var people = usersRepository.People.OrderBy(x => x.Name);
var peopleLinks = EnumerableHelpers.MakeLinks(people, makeLink2);
navLinks.AddRange(peopleLinks);
return View("_menu", navLinks);
}
非常感谢任何帮助或提示。
谢谢,
~ck 在圣地亚哥
【问题讨论】:
-
好问题,我在网上寻找同样的问题... PartialView 工作,但现在测试被打破了;(
标签: asp.net-mvc asp.net-mvc-2 asp.net-mvc-3 razor