2017-01-26 1 views
-1

Ich arbeite derzeit an einer MVC-Anwendung. Diese Anwendung verwendet die @ Html.EnableClientSideValidation() Helfer und unaufdringlich Validierung:MVC JQuery.unobtrusive clientseitige Validierung in IE

<add key="ClientValidationEnabled" value="true" /> 
<add key="UnobtrusiveJavaScriptEnabled" value="true" /> 

Die Formelemente sich wie diese aufgebaut sind, in einer Form:

<div class="form-group row" id="countRow"> 
    <div class="col-md-4 col-xs-4"> 
     <label class="control-label" for="Entry_Count"></label> 
    </div> 

    <div class="col-md-8 col-xs-8"> 
     @Html.EditorFor(m => m.Entry.Count, new { @class = "date-picker" }) 
     @Html.ValidationMessageFor(model => model.Entry.Count, "", new { @class = "text-danger" }) 
    </div> 
</div> 

In Chrome und Firefox, das funktioniert, ganz gut, aber IE zeigt keine Prüfungsmeldungen, und wenn ich das Formular zu veröffentlichen, es bietet mir eine JSON, das alle Validierungsfehler in ihm hat, wie folgt aussehen:

{ 
    "Exception": null, 
    "ErrorMessage": "Bitte geben Sie eine Zahl >= 0,002 ein" 
} 

I woul Ich liebe es, meinen Leuten zu sagen, dass sie einfach einen Browser benutzen sollen, der NICHT IE ist, aber ich denke nicht, dass das in absehbarer Zeit passieren wird.

Ist dies irgendjemandem passiert, oder kann mir jemand in die richtige Richtung zeigen? Vielen Dank!

+0

EditorFor, was ist das Rendern - könnten Sie Ihre benutzerdefinierte Editor-Vorlage (wenn es eine gibt)? Wenn Sie in der clientseitigen Quelle nachsehen, sehen Sie auf dem im Browser gerenderten Eingabeelement irgendwelche Datenüberprüfungsattribute? –

+0

Hey, danke für die Antwort. Hier ist, wie das Element aussieht:

mbaux

+0

Wie ich beschrieben, funktioniert es gut in Chrome und FF, aber IE zeigt keine Validierung Nachrichten und gibt ein JSON nach dem Klicken auf die Schaltfläche Senden. Wenn das Formular korrekt ausgefüllt wird, funktioniert es auch in IE, nur das Verhalten bei Validierungsfehlern ist seltsam. – mbaux

Antwort

0

Okay, es scheint, als wäre dies kein Problem mit der Validierung selbst, aber mit der Kombination (oder Reihenfolge) des Ladens der Javascript-Dateien. Nachdem ich ein bisschen herumgespielt und experimentiert hatte, fand ich die Lösung. Ich habe jquery validation und die Globeize JS aus meinen Bundles entfernt und separat in die Teilansicht eingefügt, und jetzt funktioniert es.

TL; DR; Jiggling mit JS-Dateien löste das Problem

Verwandte Themen