У меня есть один макет бритвы, этот макет распространяется на все мои виды.До сегодняшнего дня навигационное меню было (отдельный контроллер) в этой раскладке.Но теперь в этом меню есть динамические данные.И я больше не могу держать это на странице макета.Так следует ли отображать это меню навигации в каждом представлении, или есть какой-то другой способ сделать его только один раз и просто передать ему данные?
Вот как я отображаю меню навигации в макете бритвы:
@Html.Action("CommonMenu", "Navigation", new { area = "CityPage" })
В представлении CommonMenu у меня есть домашняя ссылка:
<li> @Html.ActionLink("Home", "Index", "Home", new { area = "CityPage", city = ViewBag.City, countryCode = ViewBag.CountryCode }, null)
И я открываю одну страницу с этим меню.Когда я нажимаю «Домой», я ожидаю, что пойду домой к городскому дому (например, в Великобританию, Лондон).
Но я могу перейти с этой страницы в другой город (например, ЦЗ, Цюрих).И теперь мне нужно перепривязать все меню навигации.И я не знаю, смогу ли я это сделать, если отобразить меню в макете бритвы? Обновление Вот как я перехожу с одной страницы города на другую:
@Html.ActionLink("Go To London", "Index", "Home", new { area = "CityPage", city = "London", countryCode = "UK" }, null)
Когда я нажимаю на эту ссылку, вызывается действие 'CommonMenu':
[ChildActionOnly]
public PartialViewResult CommonMenu(string countryCode, string city)
{...
Но по какой-то причине это действиевызывается несколько раз:В первый раз оба значения равны нулю.Во второй раз значения Великобритания, Лондон.Третий раз - ноль.И это может привести к разрыву моей страницы.