Body标签上的条件HTML标签

时间:2018-06-13 20:43:02

标签: asp.net-core

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

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

注意:我正在使用1 == 1仅用于测试...

这很好但我需要将它应用于body标签:

<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.

如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

您所写的内容似乎不会产生有效的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>

将服务注入View(依赖注入)

@inject StyleService _styleService

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