首页 > 解决方案 > c#中的[参数]属性是什么

问题描述

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

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

它是仅在 blazor 中独有还是在 c# 中可用。请提供一些参考。提前致谢。

标签: c#blazor

解决方案


这在创建和使用 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>

推荐阅读