blazor - MatBlazor 选择问题

标签 blazor blazor-server-side matblazor

我的代码应该是这样的,但它得到空引用异常

 <MatSelect Label="Atık Tipi" @bind-Value="@SecilenAtikGrubu.GrupId" Style="width:100%">
      @foreach (var item in TumAtikTipleri)
     {
        <MatOption Value="@item.Id">@item.Deger1</MatOption>
     }
 </MatSelect>

但是当我这样使用时,它正在工作
  <select class="mdc-select__native-control" @bind="SecilenAtikGrubu.GrupId">
     @foreach (var item in TumAtikTipleri)
     {
         <option value="@item.Id">@item.Deger1</option>
     }
  </select>

绑定(bind)值类如下( SecilenAtikGrubu TumAtikTipleri )
 public class GrupKodlari : KayitBilgisi
{
    [Key]
    public int Id { get; set; }
    public string Tur { get; set; }
    public string Isim { get; set; }
    public string Deger1 { get; set; }
    public string Deger2 { get; set; }
    public string Deger3 { get; set; }
    public int? GrupId { get; set; } 
    public virtual GrupKodlari Grup { get; set; }

}

最佳答案

坏消息是的,我已经检查过了,MatSelect 无法绑定(bind)到可为空的类型。

现在好消息 ,第一个,您可以使用辅助属性作为解决方法,Try it at blazorfiddle .

public int GrupIdAux
{
    set{
        GrupId = (value==0?(int?)null:value);
    }
    get {
        return (GrupId==null?0:GrupId.Value);
    }
}

just a sample of the mat select

第二个好消息:MatBlazor 是一个开源项目。如果您需要使用可空类型,您可以 can improve MatSelect control并发送 PR。项目所有者对贡献持开放态度(例如 I wrote NumericUpDown )如果您无法改进组件,您可以花钱请人为您编写它,或者您可以在项目问题上发布对新功能的请求。看起来不错的主意,绑定(bind)可为空的对象会很棒。

关于blazor - MatBlazor 选择问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59489037/

相关文章:

c# - Blazor:如何在通用组件中将事件传递给 onClick 函数

asp.net-core - 配置 blazor wasm 和单独的 Identityserver4

visual-studio - 如何从 Visual Studio 2019 部署 Blazor 服务器托管的应用程序

html - 将身份/帐户/登录设置为 Blazor 服务器登录页面?

material-design - MatBlazor 和 Material.Blazor 有什么区别?

blazor - 在 Blazor 服务器中指定重新连接 URL

c# - 'await response.Content.ReadAsAsync<ReCAPTCHAVerificationResponse>()' 的 .net5 替代品是什么

c# - 如何在 blazor 组件中显示来自后端的自定义引导警报

c# - MatDialog : controlling overall size regardless of content size