如何在@Body中使用@bind PropertyName
我有一个有很多页面的项目。结构是:父页面,包括菜单、标题和上下文。任务是将一些字符串从上下文页面发送到标题。问题是:如何在如何在@Body中使用@bind PropertyName,bind,blazor,Bind,Blazor,我有一个有很多页面的项目。结构是:父页面,包括菜单、标题和上下文。任务是将一些字符串从上下文页面发送到标题。问题是:如何在@Body上使用@bind PropertyName MainLayout.razor: @inherits LayoutComponentBase <div class="sidebar"> <NavMenu /> </div> <div class="main"> <div class="top-
@Body
上使用@bind PropertyName
MainLayout.razor:
@inherits LayoutComponentBase
<div class="sidebar">
<NavMenu />
</div>
<div class="main">
<div class="top-row px-4">
<Header PageTitle="@_PageTitle" />
</div>
<div class="content px-4">
@Body
</div>
</div>
@code{
private string _PageTitle { get; set; }
}
@继承LayoutComponentBase
@身体
@代码{
私有字符串_PageTitle{get;set;}
}
标题组件:
<div>Title: @PageTitle</div>
@code {
[Parameter]
public string PageTitle { get; set; }
}
@page "/plainpage"
<div> @PageTitle </div>
<Content />
@code{
[Parameter]
public string PageTitle { get; set; } = "Plain Page";
public EventCallback<string> Initialized { get; set; }
protected override void OnInitialized()
{
OnPageInitialized();
}
private Task OnPageInitialized()
{
return Initialized.InvokeAsync(PageTitle);
}
}
Title:@PageTitle
@代码{
[参数]
公共字符串PageTitle{get;set;}
}
上下文组件:
<div>Title: @PageTitle</div>
@code {
[Parameter]
public string PageTitle { get; set; }
}
@page "/plainpage"
<div> @PageTitle </div>
<Content />
@code{
[Parameter]
public string PageTitle { get; set; } = "Plain Page";
public EventCallback<string> Initialized { get; set; }
protected override void OnInitialized()
{
OnPageInitialized();
}
private Task OnPageInitialized()
{
return Initialized.InvokeAsync(PageTitle);
}
}
@page”/plainpage
@页面标题
@代码{
[参数]
公共字符串PageTitle{get;set;}=“普通页面”;
公共事件回调已初始化{get;set;}
受保护的覆盖无效OnInitialized()
{
OnPageInitialized();
}
私有任务OnPageInitialized()
{
返回初始化。InvokeAsync(页面标题);
}
}
如果不是
@Body
我有
组件,我会做
。但是如何使用@Body
最简单的方法是使用CascadingValue,“上下文”页面可以使用该值回调布局
因此,在主布局中,将@Body包装在CascadingValue中
@身体
在主布局的@code
中创建一个公共方法
publicsvoidsomemethod(stringsomestring)
{
//使用某些字符串执行某些操作,例如设置PageTitle
}
在“上下文”的代码中使用CascadingParameter
[CascadingParameter]主布局主布局{get;set;}
受保护的覆盖无效OnInitialized()
{
mainLayout.SomeMethod(页面标题);
}
请参见以下内容: