通过按钮单击事件jQuery将模型发送到MVC C#controller的动作

时间:2017-04-20 12:51:13

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

我一直在研究MVC C#项目,我需要将信息(模型)从我的View发送到应有的控制器操作,但在通过jQuery和提交按钮的click事件管理一些验证之后,这里是单击提交按钮的javascript代码及其验证(工作正常)

 $("#sentInfo").click(function (e) {
            e.preventDefault();
            $("#idProveedor").val(proveedor);
            $("#idacme").val('ingresar');

                var table = $('#myTable');

                table.find('tbody tr').each(function (index, tr) {
                    if ($(tr).find("td:eq(2)").html() === $("#idDUI").val()) {
                        alert('ya existe el DUI');
                        exit;
                    }

                    else if ($(tr).find("td:eq(3)").html() === $("#idISSS").val()) {
                        alert('ya existe el ISSS');
                        exit;
                    }
                    else {
                        $("form").submit();
                    }
                });
        });

上面的代码将值设置为#idProveedor和#idacme输入,并验证DUI或ISSS是否已经存在但是如果值已经存在,它总是将模型发送到操作以及我想要的那些,如果ISSS或DUI如果存在值,则不应将模型发送到action方法。 任何人都可以帮助我吗?

这是我的表单代码

 @using (Html.BeginForm("EnviarEALG", "Home", FormMethod.Post, new { @class = "form-horizontal", role = "form", id = "FormEmp" }))
            {
...
some code goes here
...
<input type="submit" value="Ingresar Empleado" class="btn btn-info" id="sentInfo" />
}

这是修改后的代码:

  $("#sentInfo").click(function (e) {
            e.preventDefault();
            $("#idProveedor").val(proveedor);
            $("#idacme").val('ingresar');

             var table = $('#myTable');

                table.find('tbody tr').each(function (index, tr) {
                    if ($(tr).find("td:eq(2)").html() === $("#idDUI").val()) {
                        alert('ya existe el DUI');
                        exit;
                    }

                    else if ($(tr).find("td:eq(3)").html() === $("#idISSS").val()) {
                        alert('ya existe el ISSS');
                        exit;
                    }
                    else {
                        $("FormEmp").submit();
                    }
                });
        });

和按钮

<input type="button" value="Ingresar Empleado" class="btn btn-info" id="sentInfo" />

1 个答案:

答案 0 :(得分:1)

一种解决方案是使用ajax将数据从视图发送到控制器。我经常使用它,因为你使用的是jQuery click事件,所以可能是一个很好的解决方案。下面是一个未经测试的示例,但它会让您了解如何执行此操作。

function Save(model){

    var data = {
      'modelNameToPass': model
    }

    $.ajax({
         url: "/Home/EnviarEALG", // "/ControllerName/Method"
         data: data,
         type: "POST",
         success: function(response){
             //code to do something on success
         },
         error: function(response){
            //do error stuff here
         }
    });

}

然后你的控制器应该已经设置好了......

[HttpPost]
public ActionResult EnviarEALG(DataModel modelNameToPass)
{

}

希望这有帮助!