0

我在 ASP.NET MVC 项目中有这个 jQuery 函数

        $(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);
                });
            });

我需要在这里添加检查我使用的模型中是否有一个属性Model.ActionsAllowed == true
如果Model.ActionsAllowed == true我需要执行这个点击功能,在其他情况下我什么都不用做,但我不知道如何在功能中添加这个检查。

UPD如果我尝试使用

$(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);
                });
            };
        });

它有效,但我得到Use of implicity declared global variable 'Model'。如何解决?

4

1 回答 1

0

解决此问题的一种方法是将值Model.ActionsAllowed == true放在隐藏字段中并在您的 JS 中引用该值

例如在你看来

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

然后在你的 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);
        });
    };
});
于 2013-06-21T10:29:43.833 回答