我有一个表面控制器,它调用外部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;
}
答案 0 :(得分:0)
这与umbraco无关,因为当您使用普通MVC时从模板调用ChildAction时会遇到同样的问题。
解决此问题的唯一方法是使用MvcRenderController作为完整模板,而不是SurfaceController。
然后......如果在主文档中指定了标题标签,则可以使用以下部分在模板中覆盖:
@if (IsSectionDefined("metaTitleTag"))
{
@RenderSection("metaTitleTag", required: true)
}
else
{
<title>@Model.Name</title>
}