c#中的[Parameter]属性是什么



我在看Blazor的教程。然后我遇到了这个代码,我似乎在互联网上找不到它,或者我认为我至少没有使用正确的搜索术语。

@code{
[Parameter]
public IList<Todo> Todo {get; set;}
}

它只在blazor中独占,还是在c#中可用。请提供一些参考资料。提前谢谢。

这在创建和使用ASP.NET Core Razor组件中有解释,特别是在组件参数部分。

[Parameter]用于标记在其他页面中使用组件时可以设置的组件参数。借用文档示例,该组件没有任何参数:

<div class="panel panel-default">
<div class="panel-heading">@Title</div>
<div class="panel-body">@ChildContent</div>
<button class="btn btn-primary" @onclick="OnClick">
Trigger a Parent component method
</button>
</div>
@code {
public string Title { get; set; }
public RenderFragment ChildContent { get; set; }
public EventCallback<MouseEventArgs> OnClick { get; set; }
}

如果没有[Parameter]属性,这些只是公共属性,无法从其他页面进行设置。以下行无效:

<ChildComponent Title="Panel Title from Parent" />

而这个:

<div class="panel panel-default">
<div class="panel-heading">@Title</div>
<div class="panel-body">@ChildContent</div>
<button class="btn btn-primary" @onclick="OnClick">
Trigger a Parent component method
</button>
</div>
@code {
[Parameter]
public string Title { get; set; }
[Parameter]
public RenderFragment ChildContent { get; set; }
[Parameter]
public EventCallback<MouseEventArgs> OnClick { get; set; }
}

允许我们在使用该组件时设置参数:

<ChildComponent Title="Panel Title from Parent"
OnClick="@ShowMessage">
Content of the child component is supplied
by the parent component.
</ChildComponent>

C#中的所有属性都必须引用一个类型,该类型在的某个地方定义该属性。Blazor代码仍然是C#。

在这种情况下,我相信它指的是Microsoft.AspNetCore.Components.ParameterAttribute-文档目前是MIA,但随着时间的推移,它可能会有所改进。Blazor文档中有更多详细信息。

一般来说,如果你面前有代码(如果可能的话,在观看教程时通常是个好主意(,你可以将鼠标悬停在Visual Studio中的属性上,以查看其完全限定的名称或导航到它

最新更新