如果用户在使用 Razor 的 Dotnetnuke 上具有角色,则显示 HTML

Display HTML if user has role on Dotnetnuke using Razor

我正在使用 Dotnetnuke CMS 并尝试修改用 Razor 编写的显示模板。

我有一个 div 我想 hide/display 基于用户的角色。我对 Razor 和 C# 还很陌生,无法正常工作。

我已经阅读了 DNN 的 UserController,但不确定这是针对 Razor 还是 ACSX asp.net 模板引擎或 CSHTML 文件?

我的代码如下:

Dim userInfo = UserController.GetCurrentUserInfo()

if (userInfo.IsInRole("Administrators")) {
<div style="background-color:red;">IS ADMIN</div>
}
else if (userInfo.IsInRole("Dealers")) {
<div style="background-color:blue;">IS DEALER</div>
}
End If

我假设您正在使用 Module Creator 使用 Razor 语法构建一个快速模块。

您的代码示例混合了 C# 和 VB 语法。这是 C# 中的代码。

@using DotNetNuke.Common;
@using DotNetNuke.Entities.Users;

@{
    var userInfo = UserController.Instance.GetCurrentUserInfo();
}

@if (userInfo.IsInRole("Administrators")) {
    <div style="background-color:red;">IS ADMIN</div>
}
else if (userInfo.IsInRole("Dealers")) {
    <div style="background-color:blue;">IS DEALER</div>
}