我一直在研究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" />
答案 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)
{
}
希望这有帮助!