我一直在开发一个 MVC C# 项目,我需要将信息(模型)从我的 View 发送到适当的 Controller 操作,但是在通过 jQuery 管理一些验证和提交按钮的单击事件之后,这里是单击提交按钮及其验证的 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值存在,则不应将模型发送到操作方法。 谁能帮我吗?
这是我的表单代码
@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" />
最佳答案
一种解决方案是使用 ajax 将数据从 View 发送到 Controller 。我经常使用它,并且可能对您来说是一个很好的解决方案,因为您正在使用 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
}
});
}
那么你的 Controller 应该已经像这样设置了..
[HttpPost]
public ActionResult EnviarEALG(DataModel modelNameToPass)
{
}
希望这有帮助!
关于javascript - 通过按钮单击事件 jQuery 将模型发送到 MVC C# Controller 的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43520083/