【问题标题】:How do I pass data up from the child page to the page calling @Body?如何将数据从子页面传递到调用@Body 的页面?
【发布时间】:2019-07-10 00:56:40
【问题描述】:

所以我有一个带有标题栏的 MainLayout,我想要一个允许页面将标题栏设置为它想要的任何参数的参数。所以 mainlayout 通过 @Body 调用页面,我很困惑如何将数据通过 body 传递到 mainlayout 以更新标题栏。

任何帮助将不胜感激!

<div class="sidebar">
<NavMenu />
</div>
<div class="main">
<div class="top-row px-4">
    <h3 bind="@TitleValue">@(TitleValue)</h3>
    <a class="ml-md-auto">@ADService.LoggedUser().DisplayName (@*@(ADService.LoggedUser().IsMemberOf())*@Admin)</a>
</div>
<CascadingValue Value="@TitleValue" Name="TitleValue">
    <div class="content px-4">
        @Body
    </div>
</CascadingValue>
</div>

<Footer />

@functions {
    string TitleValue = "Inventory";
}

所以我想做的是向下传递 TitleValue,让页面根据发生的情况更新它,并用新值更新标题栏。

如果这不是这样做的方法,或者我遗漏了一些东西,任何帮助都会很棒:)

【问题讨论】:

标签: asp.net razor blazor blazor-server-side


【解决方案1】:

我想以下不是我的可以帮助你:

创建一个保存数据的类。将其注册为单例 服务。将其注入布局和页面。您可能应该添加 一种通知机制,用于通知所有组件某事 在您的数据类中已更改。

You can look here...

Source and more...

【讨论】:

  • 这实际上工作得很好。不敢相信我没有想到。创建“AppState”效果非常好。我唯一做的就是做一个瞬态,因为现在它就像一个会话状态,这对我来说更好用。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-20
  • 2020-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多