我有一个在cshtml页面中的典型div元素,形式如下:
<div id="loginErrors" class="alert alert-danger hide-errors">@(ErrorMessage)</div>
在 Blazor 之前,我通常使用 jQuery 来添加或删除 div 的 hide-errors
类。然而,Blazor 正试图消除对 JavaScript 的需求,我正在尽可能少地使用 JSInterop。在 Blazor 中是否有一种方法可以做到这一点?
因此,在 Blazor 中,我可以这样做:
@if (!string.IsNullOrEmpty(ErrorMessage))
{
<div id="loginErrors" class="alert alert-danger">@(ErrorMessage)</div>
}
else
{
<div id="loginErrors" class="alert alert-danger hide-errors">@(ErrorMessage)</div>
}
或者使用JSinterop:
调用移除:
await JSRuntime.Current.InvokeAsync<object>("blazorExtensions.RemoveClass", "loginErrors", "hide-errors");
通常情况下,函数会是这样的:
RemoveClass: function (id, classname) {
var tt = '#' + id;
$(tt).removeClass(classname);
}
对于添加类名,使用两种方法都可以。但如前所述,我试图避免使用JSInterop,并且我不喜欢声明两次div元素,即使只有一个将进入DOM。
if
else
场景,并声明具有相同 id 的 2 个 div 元素,一个带有 hide-errors 类,另一个没有。因此,我确实想要删除或添加类。 - bilpor