正文标记上的条件 HTML 标记



在 ASP.NET Core 2.1视图上,我有以下内容:

<div @{if (1==1) { <text>style="background-image: url('image.png')"</text> }}></div>

注意:我使用 1==1 只是为了测试...

这很好,但我需要将其应用于正文标签:

<body @{if (1==1) { <text>style="background-image: url('image.png')"</text> }}>

在这种情况下,我收到错误:

The tag helper 'body' must not have C# in the element's attribute declaration area.

如何解决这个问题?

您正在编写的内容似乎没有产生有效的 HTML。

这里有一些想法(按复杂程度排序(可以帮助您入门。

传统条件

<body>
@if (1 == 1)
{
<div style="background-image: url('image.png')"></div>
}
else
{
<div></div>
}
</body>

三元运算符

<div style="@((1 == 1) ? "background-image: url('image.png')" : "")"></div>

将逻辑移动到单独的块

@{
var divStyle = "";
if (1 == 1)
{
divStyle = "background-image: url('image.png')";
}
}
<div style="@divStyle"></div>

逻辑在服务器端完成并存储在模型中

@model MyViewModel
<div style="@Model.DivStyle"></div>

将服务注入视图(依赖关系注入(

@inject StyleService _styleService
<div style="@_styleService.GetStyleIfTrue(1 == 1)"></div>

最新更新