【发布时间】:2019-06-02 21:55:09
【问题描述】:
我在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。
【问题讨论】:
标签: blazor