【问题标题】:asp.net mvc Redirect to action without triggering validation in current view?asp.net mvc 重定向到操作而不触发当前视图中的验证?
【发布时间】:2014-10-11 17:43:42
【问题描述】:

我有一个有多个提交按钮的视图。一个按钮用于返回另一个操作,该操作执行一些处理并加载上一个视图。

但是,在当前视图中,它对模型进行了一些验证。所以,当按钮被点击时,它会显示验证错误。

有没有办法解决这个问题?或者,我们必须在服务器端验证数据?

谢谢

【问题讨论】:

  • 您可以将cancel 类放在您的按钮上。这将绕过 jquery 验证<input type="submit" value="Do not validate" class="cancel" />
  • 酷,这是因为 jquery-ui 吗?请添加它作为答案。谢谢。

标签: asp.net asp.net-mvc asp.net-mvc-4 validation


【解决方案1】:

ASP.NET MVC 中的内置客户端验证在后台使用jquery validation plugin,您可以在仍然使用提交按钮的同时跳过验证,并将class="cancel" 添加到该输入:

<input type="submit" value="Do not validate" class="cancel" />

documentation 中也可以看到这一点。

【讨论】:

    【解决方案2】:

    您可以通过以下方式取消验证:

    $('#yourButton').click(function() { 
        $('input, textarea, select', '#yourForm').each(function () {
            $(this).attr('data-val', 'false');
        });
    })
    

    $("#yourButton").click(function() {
        $('#yourForm').removeData('validator');
        $('#yourForm').removeData('unobtrusiveValidation');
        $('#yourForm').validate().cancelSubmit = true;
        $('#yourForm').submit();
    });
    

    【讨论】:

      【解决方案3】:

      class="cancel" 现在替换为 formnovalidate 属性

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多