如果模型为空,.NET 剃须刀显示自定义文本

Posted

技术标签:

【中文标题】如果模型为空,.NET 剃须刀显示自定义文本【英文标题】:.NET razor show custom text if model is null 【发布时间】:2022-01-14 15:47:17 【问题描述】:

假设我有以下模型:

public class Parent : BaseEntity

    public Child? Child  get; set; 


public class Child: BaseEntity

    public string? Name  get; set; 

然后我将父模型发送到我的视图:

@model Parent

如果孩子为空,我想显示一个自定义的孩子名。我怎样才能在类似于以下的 1 行中做到这一点?

<input type="text" placeholder="@Model.Child?.Name ?? DefaultName">

【问题讨论】:

"@Model.Child?.Name ?? DefaultName"(顺便说一句,你不需要string?string 很好,Child? 也一样,因为它是一个引用类型。) 我想我错过了一些东西。它不工作。 :/ Btw with .NET6 string 变成了一个可为空的类型。 【参考方案1】:

我在这里找到了解决方案:

How to get the Null Coalesce operator to work in ASP.NET MVC Razor?

语句应该被包裹在 () 之间,如下所示:

<input type="text" placeholder=@(Model.Child?.Name ?? "DefaultName")>

【讨论】:

以上是关于如果模型为空,.NET 剃须刀显示自定义文本的主要内容,如果未能解决你的问题,请参考以下文章

如果 TextField 为空,则设置自定义文本

.NET Core 自定义模型绑定器调用默认模型绑定器

检查 iOS 8 的自定义键盘中的输入文本是不是为空

ASP.Net MVC:如何自定义验证消息显示

自定义 UICollectionViewCell 中的 UILabel 始终为空,无法更新文本

ASP.NET 自定义错误页面 - Server.GetLastError() 为空