我需要将下拉列表中的选定值设置为占位符。由于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
配置/绑定可能是问题所在。