【发布时间】:2020-02-15 16:55:39
【问题描述】:
是否可以通过两种方式绑定或绑定到 Blazor 中带有非字符串的事件?我已经用文本完成了这个,没有问题,但是任何其他类型的对象都会导致我出现问题。
例如,我有一个方法在输入文本时执行,该方法基于输入的值以及表单上的其他几个输入。
<InputNumber step=".01" class="form-control form-control-xs" @bind-Value="@Salary" @bind-Value:event="onkeydown"/>
private decimal salary {get; set;}
public decimal Salary
{
get
{
return salary;
}
set
{
salary = value;
CalculationHere();
}
}
当我这样做时,我收到以下错误:
我也尝试过像这样将它作为参数传递:
@oninput="@((ChangeEventArgs __e) => CalculationHere(Convert.ToDecimal(__e.Value)"
这也不起作用,因为当文本框为空并且不会为所有输入触发时会导致错误(也已尝试过 keydown)。还有很多参数,所以如果可能的话我想避免这种情况。
我还应该注意,当我运行这个项目时,在被调用的方法中设置一个断点,然后像下面这样绑定,它确实有效。但是,删除断点会阻止它工作。这让我很困惑。
<InputNumber step=".01" class="form-control form-control-xs" @bind-Value="@Salary" @oninput="(() => CalculationHere())"/>
在这方面有最佳实践吗?我是 Web 开发的新手,Blazor 本身很新,所以我不确定去这里的最佳途径是什么......有什么建议吗?谢谢!
【问题讨论】:
标签: c# asp.net-core data-binding .net-core blazor