C# 在使用MVC控制器方法之前,需要使用Javascript方法

C# 在使用MVC控制器方法之前,需要使用Javascript方法,c#,javascript,jquery,asp.net-mvc,C#,Javascript,Jquery,Asp.net Mvc,我有MVC项目。我需要在运行时进行客户端验证。当点击表单提交按钮时,我需要首先点击JavaScript方法,然后返回true move to Controller方法 只需假设以下代码类型: JavaScript OnClick方法: $(function () { $('#btnSave').on('click', function (event) { $.ajax({ url: '/Service/Utility/ThresholdValida

我有MVC项目。我需要在运行时进行客户端验证。当点击表单提交按钮时,我需要首先点击JavaScript方法,然后返回true move to Controller方法

只需假设以下代码类型:

JavaScript OnClick方法:

$(function () {
    $('#btnSave').on('click', function (event) {
        $.ajax({
            url: '/Service/Utility/ThresholdValidation',
            type: $("#addNewOrderForm").attr('method'),
            data: $("#addNewOrderForm").serialize(),
            success: function (data) {
               if (data != "") {
                   event.preventDefault();
                   alert(data);
                   return false;
               }
               else {
                   return true;
               }
            }
        });
    });
});
控制器方法:

[HttpPost]
[BaseAuthenticationFilter(UserTypeEnum.Admin, PermissionEnum.CanSendRemittance)]
public ActionResult Create(Invoice model)
{
   // Method Goes here
}
这里我无法弹出验证警报消息。当我点击按钮时,它将点击控制器方法。我需要首先使用javascript方法,如果为true,则使用controller方法


请对此进行帮助。

尝试以下代码,您必须直接在click handler中返回false,而不是ajax响应事件。因为ajax是异步的,所以它将在得到ajax响应之前立即执行ajax并从事件处理程序中调用

因此,检查数据是否不存在,然后提交表单,否则显示验证消息

$('#btnSave').on('click', function (event) {
   $.ajax({
       url: '/Service/Utility/ThresholdValidation',
       type: $("#addNewOrderForm").attr('method'),
       data: $("#addNewOrderForm").serialize(),
       success: function (data) {
           if (data != "") {
               alert(data);
           }
           else {
               $("form").submit();
           }
       }
   });

   event.preventDefault();
   return false;
});

钩住
表单的
提交
事件,而不是
点击