使用 lambda 的 Blazor 文本插值

Posted

技术标签:

【中文标题】使用 lambda 的 Blazor 文本插值【英文标题】:Blazor Text Interpolation using lambda 【发布时间】:2022-01-19 05:30:22 【问题描述】:

我在后面的代码中有这个:

protected double GetRate(double manual) => 100 - manual;

在我的 html 中,我有这个:

<MudTd DataLabel="Rate">"@(() => GetRate(context.ManualRate))"  %</MudTd>

但是这个 html 部分给了我一个错误

Cannot convert lambda expression to intended delegate type because some of the return types in the block are not implicitly convertible to the delegate return type

我怎样才能做到这一点?

【问题讨论】:

【参考方案1】:

当你想显示转换时,你不需要一个 lambda,只需要一个方法调用:

Not: <MudTd DataLabel="Rate">"@(() => GetRate(context.ManualRate))" %</MudTd> 

But: <MudTd DataLabel="Rate">@GetRate(context.ManualRate) %</MudTd>

【讨论】:

是的。我已经得到了这个。不过还是谢谢你的回答。

以上是关于使用 lambda 的 Blazor 文本插值的主要内容,如果未能解决你的问题,请参考以下文章

c# blazor 避免在委托类型返回 'void' 时使用 'async' lambda

Blazor学习之旅 路由系统

如何在 blazor 中获取窗口宽度

了解razorblazor中的lambda。

如何在 Blazor 项目中使用 C# 绑定制作 HTML 文本多行?

使用 Blazor 将输入文本动态绑定到类/对象属性