首页 > 解决方案 > 有没有办法将全局变量获取到 asp.net/razor 中的视图以使用它来测试 if 语句?

问题描述

现在,如果我的全局 var 隐私设置为 true,我正在尝试仅在我的项目中显示一个视图。我不确定如何像在控制器中那样调用全局变量,但有没有我没有想到的方法?现在我正在尝试调用一个函数来测试这个变量并输出真或假,这样我就可以在 if 语句中使用它,这感觉需要做更多的工作,我在尝试这种方式时遇到问题,所以如果还有其他方法请告诉我。

 @if (Elearn.Controllers.AccountController.CheckGdpr())
    {
        <div class="popup">
            <div id="consent-popup" class="hidden">
                <p>
                    we advise our users to accept cookies for the best experience
                    <input class="btn-glow primary login" value="@_stringLocalizer["Accept Cookies"]" id="accept" />
                </p>
            </div>
        </div>
        }

控制器功能

public bool CheckGdpr()
    {
        string str = _configuration["privacy:GDPR"];
        string checkbol = "True";
        if (checkbol == str)
        {
            return true;
        }
        else
        {
            return false;
        }
    }

如果有人也知道如何正确调用控制器功能,那将有很大帮助。我收到一个错误

严重性代码 描述 项目文件行抑制状态错误 CS0120 非静态字段、方法或属性需要对象引用 'AccountController.CheckGdpr()' Elearn C:\Users\Isaac\source\repos\elearn2-final_sapce_fixes\Elearn \Elearn\Views\Account\LogOn.cshtml 74 活动

标签: c#asp.net-corerazor

解决方案


 @if (Configuration.GetSection("privacy")["GDPR"] == "True")

这行得通


推荐阅读