Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在blazor中正确使用更多受控绑定?_C#_Asp.net Core_Blazor - Fatal编程技术网

C# 如何在blazor中正确使用更多受控绑定?

C# 如何在blazor中正确使用更多受控绑定?,c#,asp.net-core,blazor,C#,Asp.net Core,Blazor,我正在尝试向InputSelectrazor组件添加更多受控绑定。我试图做的是在属性值更改时执行方法LieferanschriftChangedAsync。我的做法如下: ---基恩·利弗兰希里夫--- @foreach(在lieferanschriften中的var anschrift) { @anschrift.ToString() } 专用任务LieferanschriftChangedAsync(字符串值) { _=int.TryParse(值,out int-lieferansch

我正在尝试向
InputSelect
razor组件添加更多受控绑定。我试图做的是在属性值更改时执行方法
LieferanschriftChangedAsync
。我的做法如下:


---基恩·利弗兰希里夫---
@foreach(在lieferanschriften中的var anschrift)
{
@anschrift.ToString()
}
专用任务LieferanschriftChangedAsync(字符串值)
{
_=int.TryParse(值,out int-lieferanschriftId);
Input.LieferanschriftId=LieferanschriftId;
Input.Lieferanschrift=\u lieferanschriften.Where(x=>x.KULA\u N\u NR==lieferanschriftId).FirstOrDefault();
返回Task.CompletedTask;
}
我不想为此使用
INotifyPropertyChanged
接口,因为模型。然而,使用这种方法,我总是会收到一条错误消息(CS0411),它告诉我指定数据类型,因为它无法自动计算。因此,我在我的方法中添加了
TValue=“int”
。现在我得到以下错误: 无法从“int”转换为“System.ReadOnlySpan”


我做错了什么
LieferanschriftId
是一个整数。

推断的类型参数(以及显式设置时)是
int
。此类型参数还影响
ValueChanged
事件。然而,您已经声明事件处理程序需要一个
字符串,而不是
int
。如果您将其更改为
(int s)
(并将
LieferanschriftChangedAsync
中的参数更改为int,则它应该可以解决编译器问题。(此外,您不必再解析该值,因为它已经是
int
).

注意:此处建议的解决方案适用于.Net5.0。如果您使用的是早期版本的框架,则应将InputSelect组件子类化,以支持整数或枚举值

将模型中的LieferanschriftId字段定义为可空,如下所示:

[Required(ErrorMessage = "Please, select your...")]
public int? LieferanschriftId{ get; set; }
现在您可以执行以下操作:

<option value="">--- Keine Lieferanschrift ---</option>

感谢enet!将变量声明为可为null的int就成功了。值0对我来说是可以的;)所以我刚刚添加了??0在我的setter中。奇怪的是,它与int一起工作?而不是int。
Input.Lieferanschrift = _lieferanschriften.Where(x => x.KULA_N_NR == lieferanschriftId).FirstOrDefault();