2013-06-21 6 views
0

J'ai cette fonction jQuery dans le projet ASP.NET MVCChanger la fonction jQuery dans le projet ASP.NET MVC

 $(document).on("click", "a.grid-activate-user", function (evt) { 
       evt.preventDefault(); 
       var id = $(this).data("id"); 
       var page = $("#usersGrid").data("page"); 
       $.post("@Url.Action("Unlock", "AdminUsers")", { id: id }, function (result) { 
        if (!result.Succeeded) { 
         toastr.error(result.Message, "Error", { positionClass: "toast-top-right" }); 
        } else { 
         toastr.success(result.Message, "Info", { positionClass: "toast-bottom-right" }); 
        } 
        loadGrid(page); 
       }); 
      }); 

et je dois ajouter ici vérifier si une propriété du modèle que j'utiliser Model.ActionsAllowed == true.
Si Model.ActionsAllowed == true J'ai besoin d'exécuter cette fonction de clic, dans d'autres cas, je n'ai rien à faire, mais je ne sais pas comment ajouter cette vérification dans la fonction.

UPD Si j'essayez d'utiliser

$(document).on("click", "a.grid-activate-user", function (evt) { 
      evt.preventDefault(); 
      var id = $(this).data("id"); 
      var page = $("#usersGrid").data("page"); 
      if (Model.ActionsAllowed) { 
       $.post("@Url.Action("Unlock", "AdminUsers")", { id: id }, function (result) { 
        if (!result.Succeeded) { 
         toastr.error(result.Message, "Error", { positionClass: "toast-top-right" }); 
        } else { 
         toastr.success(result.Message, "Info", { positionClass: "toast-bottom-right" }); 
        } 
        loadGrid(page); 
       }); 
      }; 
     }); 

cela fonctionne, mais je reçois Utilisation de la variable globale déclarée de façon implicite 'modèle'. Comment le réparer?

+0

Mettez la valeur de Model.ActionsAllowed dans une variable JS et utiliser la variable dans la fonction si. Quelque chose comme: var allowed = @ Model.ActionsAllowed.ToString(). ToLower(); – developer10214

+0

Je reçois le même avertissement car j'utilise à nouveau Model dans mon script. – Heidel

Répondre

0

Une façon de contourner cela, il a mis la valeur pour Model.ActionsAllowed == true dans un champ caché et reportez-vous que dans votre JS

par exemple à votre avis

@Html.Hidden("hid-actions-allowed", Model.ActionsAllowed) 

Et puis dans votre JS

$(document).on("click", "a.grid-activate-user", function (evt) { 
    evt.preventDefault(); 
    var id = $(this).data("id"); 
    var page = $("#usersGrid").data("page"); 
    if ($('#hid-actions-allowed').val()) { 
     $.post("@Url.Action("Unlock", "AdminUsers")", { id: id }, function (result) { 
      if (!result.Succeeded) { 
       toastr.error(result.Message, "Error", { positionClass: "toast-top-right" }); 
      } else { 
      toastr.success(result.Message, "Info", { positionClass: "toast-bottom-right" }); 
      } 
      loadGrid(page); 
     }); 
    }; 
}); 
Questions connexes