我需要在下拉列表中将所选值设置为占位符。自从更新到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>
感谢您的帮助!
答案 0 :(得分:0)
您提供的代码在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
配置/绑定可能是问题所在。
答案 1 :(得分:0)
您需要检查模型中的someValue
是否可以为空。在这里定义
<option value="">...
您的选项值为null或空字符串。如果使用字符串作为数据类型,那么一切都很好。但是,如果使用新添加的对System.Guid
的支持之类的对象,则必须允许可为空的值。
例如:
public Guid? someValue { get; set; } = null;
如果您使用Guid.Empty
也可以使用
<option value="@(System.Guid.Empty)">...
但这取决于您的要求。