我想简化以下
@if (Template != null)
{
@Template
}
else
{
<span>No contents!</span>
}
与??
或?.
可能吗?
试图
我在下面的尝试
@Template?.BeginInvoke()
@{Template==null? @Template : <span> No data to display! </span>}
@(Template??<span> No data to display! </span>)
产生红色波浪线。
编辑
我想我需要提交我想要简化的真实场景。
@typeparam T
@if (Items == null)
{
if (NullTemplate != null)
{
@NullTemplate
}
else
{
<span style="color: red">Null...</span>
}
}
else if (Items.Count == 0)
{
if (EmptyTemplate != null)
{
@EmptyTemplate
}
else
{
<span style="color: red">Empty ...</span>
}
}
else
{
@HeaderTemplate
foreach (T item in Items)
{
@ItemTemplate(item)
}
}
@code{
[Parameter] public RenderFragment NullTemplate { get; set; }
[Parameter] public RenderFragment EmptyTemplate { get; set; }
[Parameter] public RenderFragment HeaderTemplate { get; set; }
[Parameter] public RenderFragment<T> ItemTemplate { get; set; }
[Parameter] public List<T> Items { get; set; }
}
我不想将传入的值缓冲到****Template
具有私有字段的属性中,在将它们(字段)呈现为 HTML 之前对字段进行预处理。换句话说,@code{}
指令中不允许有额外的代码。