Aktivieren / Deaktivieren Sie die serverseitige Validierung von MVC dynamisch

Ich habe ein MVC-Formular mitmehrere Senden-Schaltflächen - "Entwurf speichern" und "Veröffentlichen". Das Ziel ist es, sowohl die clientseitige (Javascript / unbehindert) Überprüfung als auch die serverseitige Überprüfung zu überspringen, wenn auf die Schaltfläche "Entwurf speichern" geklickt und das Formular gesendet wird. Ich muss jedoch beide Überprüfungen auslösen, wenn auf die Schaltfläche "Veröffentlichen" geklickt wird.

Meine Forschung hat mich zu wenigen Lösungen geführt.

Client-Seite - Durch Schreiben eines JQuery-Plugins

    (function ($) {
        $.fn.turnOffValidation = function (form) {
            var settings = form.validate().settings;

            for (var ruleIndex in settings.rules) {
                delete settings.rules[ruleIndex];
            }
        };
    })(jQuery); 

und es wie aufrufen

    $('#btnSaveDraft').click(function () {
        $(this).turnOffValidation(jQuery('#myForm'));
    });

Serverseite - Auf der Serverseite konnte ich jedoch nur die Fehler aus dem ModelState entfernen. Ich habe es in einem Aktionsattribut gemacht, damit es wiederverwendbar und einfach zu verwenden ist.

[AttributeUsage(AttributeTargets.All)]
public class IgnoreValidationAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        var modelState = filterContext.Controller.ViewData.ModelState;

        //modelState.Clear();
        foreach (var modelValue in modelState.Values)
        {
            modelValue.Errors.Clear();
        }
    }
}

Dies erfüllt meinen Zweck jedoch nicht vollständig. Warum sollten wir die Validierung auslösen und die Fehler beseitigen, wenn wir dies verhindern können? Ist das möglich?

Gibt es irgendwelche Möglichkeiten, um zu verhindern, dass die Serverüberprüfung überhaupt stattfindet, anstatt die durch die Überprüfung hervorgerufenen Fehler zu löschen?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage