在其他视图mvc中从部分视图绑定按钮事件

时间:2018-05-20 10:03:34

标签: javascript c# asp.net-mvc razor

我有MVC项目我在partial中有一个按钮,我想从其他视图绑定该按钮的click事件。部分负荷,我可以看到模态。但是,部分视图中存在的按钮上的click事件永远不会被调用。

我的部分观点:

          <br />
        <div align="center">
            <input type="button" ID="BtnLogin" value="تسجيل الدخول" Class="GreenButtonStyle" />
        </div>

我的观点:

<head>
<meta name="viewport" content="width=device-width" />
<title></title>
</head>
<body >
<div style="width:100%;height:100%;">
    <br />
    <div style="text-align: center; align-items: flex-start;">
        <h3>تسجيل الدخول  </h3>
    </div>
    <br />
    <div align="center" vertical-align="middle">
        @Html.Partial("_LoginUC")
    </div>

</div>

我的控制器:

    public ActionResult Login(AdminLoginClass user, string ReturnUrl = "")
    {
        string message = "";


                        string username = user.AdminUserName;
                        string Password = user.AdminPassWord;


                        {
                        DBModel.DBAdminLogin DB_Model = new DBModel.DBAdminLogin();
                        AdminLoginClass AdminLoginClass = DB_Model.Login(username, Password);

                            int ID = AdminLoginClass.AdminGroupID;
                            switch (ID)
                            {

                                default:
                                    #region
                                    {
                                        return RedirectToAction("Index", "Home");

                                    }
                                    #endregion
                            }

                            ViewBag.Message = message;
                            return View(user);
                        }

        ViewBag.Message = message;
        return View();
    }

这是我的JavaScript代码,我将其写在主视图中:

<script>
$(document).ready(function () {
    $(".BtnLogin").on('click', function (event) {
        debugger;
        var requestedDataType = $(this).attr('data-value');
        $.ajax(
            {
                type: "GET",
                data: { requestedDataType: requestedDataType },
                url: "Login/Login",
                success: function (data) {
                    debugger;
                    $('#BtnLogin').html(data);
                },
                error: function () {
                    alert('Error')
                }
            }
        );
    }
    );
});

2 个答案:

答案 0 :(得分:0)

问题在于选择器

选择器定义为$(".BtnLogin"),它是一个类选择器(阅读here)。

由于按钮ID为BtnLogin,因此您应将选择器定义为$("#BtnLogin").on('click', function (event) {。您可以阅读有关Id选择器here的信息。如果您希望选择器使用类,则将其定义为$(".GreenButtonStyle").on('click', function (event) {

JS的完整代码:

$(document).ready(function () {
    $("#BtnLogin").on('click', function (event) {
        debugger;
        var requestedDataType = $(this).attr('data-value');
        $.ajax(
            {
                type: "GET",
                data: { requestedDataType: requestedDataType },
                url: "Login/Login",
                success: function (data) {
                    debugger;
                    $('#BtnLogin').html(data);
                },
                error: function () {
                    alert('Error')
                }
            }
        );
    }
    );
});

答案 1 :(得分:0)

我被伪造添加

 @using (@Html.BeginForm(null, "Login", FormMethod.Post))
{
    @Html.AntiForgeryToken();
 \\\\\\\ }

添加这2行

后可以正常工作