【发布时间】:2020-08-21 16:46:07
【问题描述】:
在 Blazor 组件中分配的变量与主变量链接。
客户端项目中 Blazor 的 ASP.NET Core 托管项目我有一个带有一些 inputText 的组件。我将“Person”类用作模型,并在 OnInitializedAsync() 上从 Person 分配 Person2, 通过inputText修改模型(Person)时,同时修改了Person,不知道为什么。 这个过程是因为我想在用户修改它之前保持 Person 状态,并且如果用户单击“取消”按钮能够返回到以前的状态。 我该怎么做? 谢谢
小米组件:
<EditForm Model="Person" OnValidSubmit="SendPerson" class="form-inline col-11">
<DataAnnotationsValidator />
<div class="m-auto">
<InputText class="" @bind-Value="@Person.Nom" />
<ValidationMessage For="@(() => Person.Nom)" />
</div>
<div class="m-auto">
<InputText class="" @bind-Value="@Person.Cognom1" />
<ValidationMessage For="@(() => Person.Cognom1)" />
</div>
<div class="m-auto">
<InputDate class="" @bind-Value="@Person.Cognom2" />
<ValidationMessage For="@(() => Person.Cognom2)" />
</div>
<button class="btn btn-primary m-auto" type="submit">Send</button>
</EditForm>
<button class="btn btn-warning col-1 m-auto" @onclick="CancelPerson"><span class="glyphicon glyphicon-remove"></span>Cancel</button>
@code {
[Parameter]
public persones Person { get; set; }
public persones Person2 { get; set; }
async Task SendPerson()
{
var result = await Http.PostJsonAsync<persones>("api/Persones/SetPerson", Person);
}
protected override void OnInitialized()
{
base.OnInitialized();
Person2 = Person;
}
private void CancelPerson()
{
Person = Person2;
}}
【问题讨论】: