【问题标题】:Alert with integrated global condition具有综合全局条件的警报
【发布时间】:2018-03-20 12:11:44
【问题描述】:

我是 JQuery/JavaScript 新手,需要快速开始以下案例:

通知(警报消息)对新用户很有用,但对有经验的用户来说却很烦人。所以我想根据用户设置让我的用户选择显示或不显示这些消息。 为了不必围绕每个警报构建相同的条件(源自用户设置),我想编写一个函数

  • 可以在我所有视图的脚本部分用jquery调用
  • 评估条件并获取传入的文本并根据条件发送/不发送警报消息

我知道如何围绕警报构建条件,但无法使其全局可访问:

var isConfirmActiv = "@UserPrincipal.ConfirmActiv";
var myMessage ="Bla bla";
if (isConfirmActiv.toLowerCase() === "true") {
    alert(myMessage);
}

我想在视图的脚本部分使用它:

(var isConfirmActiv = "@UserPrincipal.ConfirmActiv";) ... somewhere?
myAlert("Bla bla", isConfirmActiv);

在脚本文件中:

function myAlert(myMessage, isConfirmActiv){    
    if (isConfirmActiv.toLowerCase() === "true") {
    alert(myMessage);
    }
} 

【问题讨论】:

  • 不相关,但你应该使用var isConfirmActiv = @Html.Raw(Json.Encode(UserPrincipal.ConfirmActiv)),这意味着isConfirmActiv将是一个布尔值,所以你可以使用if (isConfirmActiv) { ... }
  • 将变量放在 _Layout.cshtml 文件的 head 部分,然后您可以在任何视图中访问它

标签: javascript jquery asp.net-mvc razor


【解决方案1】:

您必须在全局范围内(函数外)定义此 var:

https://www.w3schools.com/js/js_scope.asp

例如:

 var isConfirmActiv = "@UserPrincipal.ConfirmActiv";
 function myAlert(string myMessage){        
        if (isConfirmActiv.toLowerCase() === "true") {
            return alert(myMessage);
        }
    }

【讨论】:

  • 但是我应该把函数放在哪里?
【解决方案2】:

例如,您可以创建 javascript 文件并将其命名为 Utility。

将您的函数和全局变量 isConfirmActiv 放在该文件中,并将 js 文件链接到所有视图或主布局。

 var isConfirmActiv;

    function myAlert(myMessage, isConfirmActiv){    
        if (isConfirmActiv.toLowerCase() === "true") {
        alert(myMessage);
        }
    } 

- set directly the global defined isConfirmActiv value in every View in the script section (Note: don't redefine it, its already defined globally in javascript file)

    isConfirmActiv = "@UserPrincipal.ConfirmActiv";

- Now you can call the function from anywhere in your project.

    function myAlert(myMessage, isConfirmActiv){    
        if (isConfirmActiv.toLowerCase() === "true") {
            alert(myMessage);
        }
    } 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-07
    • 1970-01-01
    • 2015-06-14
    相关资源
    最近更新 更多