Is it possible to pass an object as the model to a component? The below demonstrates how I am passing an object's parameters one-by-one, but this is less than ideal if I had a component with many parameters. Ideally, I'd like to do something like <ColorBox Model="@color" />
and have all of the parameters automatically bind where the parameter names match.
ColorBox.cs
public partial class ColorBox : ComponentBase
{
[Parameter]
public string Name { get; set; }
[Parameter]
public string Hex { get; set; }
}
ColorBox.razor
<div class="card border-0 shadow" style="width: 18rem;">
<div class="card-header" style="height: 60px; background-color: @Hex;"></div>
<div class="card-body text-center p-3">
<h5 class="card-title mb-0">@Name</h5>
<p class="card-text text-muted">@Hex</p>
</div>
</div>
Colors.razor
@page "/colors"
@{
var colors = new List<ColorBox> {
new ColorBox { Hex = "#000000", Name = "Black" },
new ColorBox { Hex = "#ffffff", Name = "White" }
};
}
<h1>Colors</h1>
<div class="d-flex flex-wrap">
@foreach (var color in colors)
{
<div class="m-2">
<ColorBox Hex="@color.Hex" Name="@color.Name" />
</div>
}
</div>
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…