У меня проблема с областями и создание ссылок из них. Вот примерная структура кода, с которым я работаю:
Дом
Area1
Содержание области 1
Area2
Содержание области 2
Пространство3
Содержание области 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. Когда код выполняется в «домашней» области, это нормально, но когда он выполняется за пределами домашней области, он генерирует странные результаты.
Так, например, у меня есть запись в базе данных вызова OPS. Следует создать ссылку на OPS / OPS / INDEX (область = OPS, контроллер = OPS, действие = INDEX). В домашнем "районе" все хорошо, но когда оно в районе, оно выходит "http://localhost:17416/Home/OPS/OPS/INDEX"
Любая помощь, которая может быть оказана, будет великолепна!
Заранее всем спасибо.