【问题标题】:Blazor/ dotnet 5.0.0: Set selected value in InputSelectBlazor/dotnet 5.0.0:在 InputSelect 中设置选定值
【发布时间】:2022-02-22 00:51:11
【问题描述】:

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

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

感谢您的帮助!

【问题讨论】:

    标签: .net blazor .net-5 placeholder selected


    【解决方案1】:

    您需要检查模型中的someValue 是否允许为空。你在这里定义

    <option value="">...
    

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

    例如:

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

    如果你使用这个,也可以使用Guid.Empty

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

    但这取决于您的要求。

    【讨论】:

      【解决方案2】:

      您提供的代码在 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 配置/绑定可能是问题所在。

      【讨论】:

      • 您的代码正在运行。谢谢你的回答!加载页面时预先选择“一些文本”。
      猜你喜欢
      • 2020-07-05
      • 2023-03-29
      • 2021-03-18
      • 2021-06-22
      • 2021-03-06
      • 1970-01-01
      • 2020-10-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多