Javascript 将模型发送给MVC控制器和xB4;通过按钮单击事件jQuery执行的操作

Javascript 将模型发送给MVC控制器和xB4;通过按钮单击事件jQuery执行的操作,javascript,c#,jquery,asp.net-mvc,Javascript,C#,Jquery,Asp.net Mvc,一、 我一直在从事一个MVC项目,我需要将视图中的信息(模型)发送给适当的控制器操作,但是在通过jQuery和提交按钮的单击事件管理一些验证之后,下面是单击提交按钮及其验证时的javascript代码(工作正常) 上面的代码将值设置为#IDProvider和#idacme输入,并验证DUI或ISSS是否已存在,但如果值已存在,则始终将模型发送到操作,我希望的是,如果ISSS或DUI值存在,则不应将模型发送到操作方法。 有人能帮我吗 这是我的表格代码 @using (Html.BeginForm

一、 我一直在从事一个MVC项目,我需要将视图中的信息(模型)发送给适当的控制器操作,但是在通过jQuery和提交按钮的单击事件管理一些验证之后,下面是单击提交按钮及其验证时的javascript代码(工作正常)

上面的代码将值设置为#IDProvider和#idacme输入,并验证DUI或ISSS是否已存在,但如果值已存在,则始终将模型发送到操作,我希望的是,如果ISSS或DUI值存在,则不应将模型发送到操作方法。 有人能帮我吗

这是我的表格代码

 @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" />
}
还有按钮

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

一种解决方案是使用ajax将数据从视图发送到控制器。我经常使用它,并且可能是一个很好的解决方案,因为您使用的是jQuery单击事件。下面是一个未经测试的示例,但它将为您提供如何执行此操作的想法

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)
{

}

希望这有帮助

是的,模型的所有属性:@Html.EditorFor(model=>model.property)将
type=“submit”
更改为
type=“button”
。因为它是一个
submit
类型,它会自动为您发回,所以将它设置为一个
按钮
,以允许javascript处理提交。谢谢,一旦更改了类型,如何发送模型,可能是:$(“表单”)。提交?另一个问题,我使用e.preventdefault,在使用input=submit for yhe按钮的情况下没有帮助?您的
。each()
循环意味着,如果表中的任何行不满足这些条件,则将提交表单。如果任何一行“无效”,我想你会阻止提交?@PabloMayora老实说,我很担心我给你的是@StephenMuecke的坏建议。也许他会发布一个答案,告诉我们如何正确地做。FWIW try
$(“#FormEmp”).submit()
(您错过了
#
)虽然这是一个很好的解决方案,但在我的情况下,这不是一个选项,不是因为我,而是因为我的同事,所以我必须坚持旧的MVC,无论如何,谢谢。
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)
{

}