Umbraco:使用HTML元标题中部分视图的数据

时间:2014-07-17 21:51:16

标签: asp.net-mvc razor umbraco surface-controller

我有一个表面控制器,它调用外部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 个答案:

答案 0 :(得分:0)

这与umbraco无关,因为当您使用普通MVC时从模板调用ChildAction时会遇到同样的问题。

解决此问题的唯一方法是使用MvcRenderController作为完整模板,而不是SurfaceController。

然后......如果在主文档中指定了标题标签,则可以使用以下部分在模板中覆盖:

@if (IsSectionDefined("metaTitleTag"))
{
    @RenderSection("metaTitleTag", required: true)
}
else
{
    <title>@Model.Name</title>
}