Blazor/dotnet 5.0.0:在InputSelect中设置所选值



我需要将下拉列表中的选定值设置为占位符。由于mcr.microsoft.com/dotnet/sdk:5.0的更新,它将不再工作。输入字段只是空的,并且没有选择任何值。它在更新之前就已经工作了。设置所选属性也不起作用。

<InputSelect @bind-Value="someValue" id="someValue" required>
<option value="">some Text</option>
@foreach (var someValue in someValues)
{
<option value="@someValue">@someValue</option>
}
</InputSelect>

谢谢你的帮助!

您需要检查Model中的someValue是否允许为null。这里定义

<option value="">...

您的选项值为null或空字符串。如果您使用字符串作为数据类型,那么一切都很好。但是,如果您使用像新添加的对System.Guid的支持这样的对象,那么这就必须允许可以为null的值。

例如:

public Guid? someValue { get; set; } = null;

如果您使用此,也可以使用Guid.Empty

<option value="@(System.Guid.Empty)">...

但这取决于您的要求。

您提供的代码在rc2中运行良好。

注意:我对EditForm的使用做了一些假设。

<EditForm EditContext="SomeContext">
<InputSelect @bind-Value="someValue" id="someValue" required>
<option value="">some Text</option>
@foreach (var someValue in someValues)
{
<option value="@someValue">@someValue</option>
}
</InputSelect>
</EditForm>
@someValue
@code {
IEnumerable<string> someValues = new List<string> { "Value1", "Value2", "Value3" };
EditContext SomeContext { get; set; }
string someValue;
SomeModel someModel = new SomeModel();
protected override void OnInitialized()
{
SomeContext = new EditContext(someModel);
}
class SomeModel { }
}

然而:您使用";someValue";处处我需要查看更多您的代码才能找到错误。如果你把它粘贴在垃圾/测试项目索引页的底部,这将起作用。EditForm配置/绑定可能是问题所在。

相关内容

  • 没有找到相关文章