我在Blazor观看教程。然后我遇到了这段代码,但似乎无法在Internet上找到它,或者我认为我没有使用正确的术语搜索至少。
@code{
[Parameter]
public IList<Todo> Todo {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
它仅在blazor中排他,还是在c#中可用。请给一些参考。提前致谢。
创建和使用ASP.NET Core Razor组件中对此进行了说明,尤其是在“ 组件参数”部分中。
[Parameter]用于标记当在另一页面中使用组件时可以设置的组件参数。从doc示例中借用的该组件没有任何参数:
<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; }
}
Run Code Online (Sandbox Code Playgroud)
没有[Parameter]属性,这些只是不能从其他页面设置的公共属性。以下行将无效:
<ChildComponent Title="Panel Title from Parent" />
Run Code Online (Sandbox Code Playgroud)
虽然这:
<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; }
}
Run Code Online (Sandbox Code Playgroud)
允许我们在使用该组件时设置参数:
<ChildComponent Title="Panel Title from Parent"
OnClick="@ShowMessage">
Content of the child component is supplied
by the parent component.
</ChildComponent>
Run Code Online (Sandbox Code Playgroud)
C#中的所有属性都必须引用在某处定义该属性的类型。该Blazor代码仍为C#。
在这种情况下,我认为它引用的是Microsoft.AspNetCore.Components.ParameterAttribute-该文档当前为MIA,但随着时间的推移可能会有所改善。Blazor文档中有更多详细信息。
通常,如果前面有代码(通常在观看教程时是个好主意,如果可能的话),则可以将鼠标悬停在Visual Studio中的属性上以查看其标准名称或导航至该名称。
| 归档时间: |
|
| 查看次数: |
206 次 |
| 最近记录: |