Umbraco: использовать данные из частичного представления в мета-заголовке HTML
У меня есть контроллер поверхности, который вызывает внешний API, чтобы получить список магазинов в данном городе и штате. Проблема в том, что мне нужно использовать некоторые данные, которые я получаю от этого звонка, в
<title></title>
Который существует в голове моего Мастер шаблона. Насколько я могу судить, невозможно передать данные из частичного представления в мастер-шаблон. Я в тупике.
Я попытался использовать ViewBag, но он рендерит голову до того, как мой частичный просмотр установит значение, и он просто обнулится.
Шаблон:
<head>
<title>ViewBag.Title</title>
</head>
<body>
<div class="main foreground container">
<h1>@CurrentPage.title</h1>
@CurrentPage.mainColumn
@Html.Action( "StoreDirectory", "Locations" )
</div>
</body>
Частичный вид:
@model Fromm.Web.Consumer.Models.StoreDirectoryModel
@using Fromm.Model;
@{
ViewBag.Title = @Model.Title;
}
1 ответ
Это на самом деле не связано с Umbraco, потому что у вас будет такая же проблема, когда вы вызываете ChildAction из шаблона, когда вы используете обычный MVC.
Единственный способ решить эту проблему - использовать MvcRenderController для вашего полного шаблона, а не SurfaceController.
Тогда... Если в основном документе указан заголовок, сделайте его перезаписываемым в шаблонах с помощью раздела:
@if (IsSectionDefined("metaTitleTag"))
{
@RenderSection("metaTitleTag", required: true)
}
else
{
<title>@Model.Name</title>
}