0

我有一个表面控制器,它调用外部 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;
}
4

1 回答 1

0

这并不是真正的 umbraco 相关,因为当您使用纯 MVC 从模板调用 ChildAction 时,您会遇到同样的问题。

解决这个问题的唯一方法是为您的完整模板使用MvcRenderController,而不是使用 surfaceController。

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

@if (IsSectionDefined("metaTitleTag"))
{
    @RenderSection("metaTitleTag", required: true)
}
else
{
    <title>@Model.Name</title>
}
于 2014-07-21T12:12:31.997 回答