c# - Blazor,将 0 值绑定属性填充为输入中的空字符串
问题描述
你好我有一个问题,
所以我正在尝试使用 blazor,它很有趣,但我想知道什么时候绑定一个简单的模型,将一个 int 属性绑定到文本输入,例如:
<input type="text" class="communication__control--input" id="broadcast-port" autocomplete="off" placeholder=" " @bind="@this.Simple.Number" />
现在模型中的属性只是 int (不可为空),因此该输入的默认值为 0。所以我的问题是我可以让 0 在输入中显示为空字符串,如果我写任何值(例如 3 将显示为 3,但 0 将显示空字符串)它会绑定吗?
基于@Bennyboy1973 评论,基本上我可以使用 2 个属性,一个将绑定字符串 prop,另一个将是只读 int,它将尝试转换第一个,或者仅使用 2 个模型组合(例如 DTO 和后端模型)和 automapper . 但是有没有更简单的方法?
解决方案
如果你真的想这样做,那么这很有效:
<input type="text" @bind-value="model.Value" />
@code {
public class Model
{
public string Email { get; set; }
public string Value
{
get => _value != 0 ? _value.ToString() : string.Empty;
set
{
if (int.TryParse(value, out int pvalue))
_value = pvalue;
else
_value = 0;
}
}
private int _value;
}
我可以预见到在验证和编辑状态管理方面存在更高级情况的一两个问题,因此我可能会编写 Blazor 的自定义版本InputText
。
推荐阅读
- python - 将 Telegram 机器人的消息反映到 Google 表格的问题
- php - Summernote - 无法使用 Ajax 查看提及列表(在 php 中动态生成)
- json - 使用 powerShell 在本地 repo 文件夹中创建/覆盖文件
- ios - 只有在另一个 Observable 接收到元素后才订阅 Observable
- php - PHP 中的 PayU 交易状态 API
- html - 找不到什么控制我的 main_list 之间的空间
- swift - 从应用程序的文档文件夹加载图像(iOS 14 小部件)
- amazon-web-services - 在 ansible 中使用 arns 进行 AWS SSM 查找
- vue.js - 由于 unsafe-eval,Vue.js 3 扩展在使用“vue-cli-service build”时中断
- python - 每次循环后重置变量