首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用@或不使用

使用@或不使用
EN

Stack Overflow用户
提问于 2021-08-24 06:58:55
回答 3查看 150关注 0票数 2

在这里:SimilarQuestion,公认的答案是,是否使用@是基于审美原因的。

但在我的用例中,似乎有一个不同之处:

代码语言:javascript
复制
<MudSelect T="int" Label="Add to meeting:" Variant="Variant.Outlined" @bind-Value="SelectedTaskId">
    @foreach (var task in TasksNotInMeeting)
    {
        <MudSelectItem Value="task.Id">task.Name</MudSelectItem>
    }
</MudSelect>

使用task.Name代替@task.Name使输出成为"task.Name“。不过,task.Id似乎起作用了。当我写这篇文章的时候,我想这可能是因为我在html区域,对吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-08-24 07:03:56

可能是因为我在一个html区域,对吗?

是。

“Razor”是一个转换程序,需要区分C#和HTML。这种切换是非常聪明和轻量级的。

当Razor期望C#时,额外的@是无害的(但杂乱无章)。

当Razor希望使用HTML并希望显示C#值时,需要使用@进行切换。就像在<p>@task.Name</p>一样。自动检测C#表达式或语句的结尾。很久以前,这必须写成<%=task.Name%>

请参阅带有转义规则和显式和隐式表达式的Razor语法的此链接

票数 3
EN

Stack Overflow用户

发布于 2021-08-24 07:06:39

请参阅Microsoft的正式文档:

https://learn.microsoft.com/en-us/aspnet/core/blazor/components/?view=aspnetcore-5.0#markup-1

摘录:

组件成员用于使用以@符号开头的C#表达式来呈现逻辑。例如,C#字段是通过在字段名的前缀@中呈现的。

票数 1
EN

Stack Overflow用户

发布于 2021-08-24 07:56:45

Blazor将c#和html结合在一起,如果使用@,则指的是正在编写c#代码的blazor。如果您不使用@ on代码,则使用纯文本。在您的示例中,只要将Task.name作为文本,就应该使用@,因为您引用的是一个对象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68903045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档