在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.
如何解决这个问题?
答案 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>