如何将值绑定到 class 属性?

How to bind a value to a class property?

我是 Web 开发的新手,也是 C#/Blazor 的新手。

因此,我正在从事我的一个宠物项目。在这个项目中,我有一个页面,我希望用户在其中输入一些数字。

我想动态地将这些值绑定到 class,然后使用 class 执行计算并动态显示这些结果,以便用户一旦更改输入,无需单击“提交”按钮或类似按钮即可更新结果。因此,基本想法是拥有某种实时计算器。

我正在使用 MudBlazor 框架来加快速度。 这是我位于 Pages/Project.razor 中的起始代码:

<MudItem xs="12" sm="6" md="4">
  <MudNumericField @bind-Value="Project.NumDays" Label="Number of days" Variant="Variant.Text" Min="0" Max="10000" />
</MudItem>

@code {
  public class Project
  {
    public string NumDays // property
    { get; set; }
  }
}

现在,应用程序声明无法识别项目 class。 我怎样才能达到我想要的?这可能吗 ?或者我需要在 Pages 目录之外定义 Project class 吗?

您必须实例化项目 class...您不能将 class 定义标识符用作 @bind-Value 指令属性的值。这样做:

Project project = new Project();

您的代码应如下所示:

<MudItem xs="12" sm="6" md="4">
  <MudNumericField @bind-Value="project.NumDays" Label="Number of days" Variant="Variant.Text" Min="0" Max="10000" />
</MudItem>


@code {
    Project project = new Project();

  public class Project
  {
    public string NumDays { get; set; } // property
    
  }
}

注意Project实例以小写开头p