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