【问题标题】:How do I bind my InputText to a bool using ASP.net core如何使用 ASP.net 核心将 InputText 绑定到布尔值
【发布时间】:2021-08-08 23:47:40
【问题描述】:
<InputText class="input-checkbox100" id="ckb1" name="validateUSPSAddress" disabled="@true" @bind-Value="_model.CheckUSPSValidation" />

在我的模型中,我将 CheckUSPSValidation 定义为

 public bool CheckUSPSValidation { get; set; }

我收到的错误如下。我不明白为什么它试图将 bool 转换为字符串

严重性代码描述项目文件行抑制状态 错误 CS1503 参数 1:无法从 'bool' 转换为 '字符串' 219 不适用

【问题讨论】:

  • 使用CheckUSPSValidation.ToString()
  • 为什么不&lt;InputCheckbox&gt;
  • 我同意布赖恩的观点,您为布尔值使用了错误的 UI 组件。
  • 不要乱用基本输入。浏览器,尤其是手机浏览器,通常具有用于 html 输入的特殊组件,像这样绕过它们可能会给手机用户带来不幸的后果。

标签: c# asp.net-core blazor


【解决方案1】:

您必须将其转换为布尔值并转换回字符串。绑定必须是字符串:

<EditForm Model="mod">
  <InputText @bind-Value="@mod.checkString"/>
</EditForm>
Value: @mod.check
@code {

MyModel mod = new();
class MyModel
{
    public bool check { get; set; }
    public string checkString{get=>check.ToString();
    set{
        if(Boolean.TryParse(value, out bool val))
        check = val;
    }
    }
}
}

Working demo.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-26
    • 1970-01-01
    • 1970-01-01
    • 2011-02-25
    • 1970-01-01
    • 2013-09-12
    • 1970-01-01
    相关资源
    最近更新 更多