【发布时间】:2011-08-08 20:09:27
【问题描述】:
我遇到了区域问题并从中生成链接。这是我正在使用的代码的粗略结构:
首页
区域1
区域 1 内容
区域2
区域 2 内容
区域3
第三区内容
在我的 _layout.cshtml 文件中,我生成了一个菜单(完全由表格驱动):
foreach (MainMenu mm in parentMenus)
{
List<SubMenu> theseChildren = childMenus.Where(o => o.MainMenuId == mm.MainMenuId).OrderBy(p => p.Ordering).ToList();
result.Append(String.Format(@"<h3><a href='#'>{0}</a></h3>", mm.Name));
result.Append(String.Format(@"<div>"));
result.Append(String.Format(@"<p>"));
foreach(SubMenu sm in theseChildren){
//Issue is here:
result.Append(String.Format(@"<a href='{0}/{1}/{2}'>{3}</a> <br />", sm.AreaName == null ? String.Empty : sm.AreaName, sm.ControllerName, sm.ActionName, sm.Name));
}
result.Append(String.Format(@"</p>"));
result.Append(String.Format(@"</div>"));
}
这是因为它是为手风琴 (jQuery) 生成的。
所以,问题出在 foreach 循环中。当代码在“Home”区域运行时没问题,但是当它在 home 区域之外运行时,它会产生奇怪的结果。
因此,例如,我在数据库中有一条记录调用 OPS。它应该创建一个到 OPS/OPS/INDEX 的链接(区域 = OPS,控制器 = OPS,操作 = INDEX)。在home“区域”,还可以,但是在某个区域时,会出现“http://localhost:17416/Home/OPS/OPS/INDEX”
能提供的任何帮助都会很棒!
提前谢谢大家。
【问题讨论】:
标签: c# asp.net-mvc-3