2009-12-10 18 views
5

MicrosoftMvcJQueryValidation.js wird von ASP.NET MVC 2 für die clientseitige Validierung verwendet.Wo ist die richtige Version von MicrosoftMvcJQueryValidation.js für MVC 2 Beta 2?

Probleme mit dieser Datei funktioniert nicht richtig und frage mich, ob ich die falsche Version habe.

Die Version, die ich verwende, kam aus der Quelle für Futures.

MicrosoftMvcJQueryValidation.js 
5,626 bytes 
11/17/09 10:43:12am 

Es gibt zwei Gründe, warum ich glaube, ich habe die falsche Version:

1) Ich habe tatsächlich diesen Code rufen Sie die Validierung Routine zu bekommen überhaupt arbeiten. Dies liegt daran, dass die Standard-Client-Validierungsfunktion, die jetzt in FormContext.cs eingebettet ist, Sys.Mvc.FormValidation.enableClientValidation ist.

ViewContext.FormContext.ClientValidationFunction = "EnableClientValidation"; 

2) Es ist ein Code aus jquery.validate.js die die followin tut:

this.settings.errorPlacement 
    ? this.settings.errorPlacement(label, $(element)) 
    : label.insertAfter(element); 

Dies erfordert in dieser Funktion in MicrosoftMvcJQueryValidation.js:

errorPlacement: function(error, element) { 
     var messageSpan = fieldToMessageMappings[element.attr("name")]; 
     $(messageSpan).empty(); 
     $(messageSpan).removeClass("field-validation-valid"); 
     $(messageSpan).addClass("field-validation-error"); 
     error.removeClass("input-validation-error"); 
     error.attr("_for_validation_message", messageSpan); 
     error.appendTo(messageSpan); 
    }, 

Das Problem ist, dass Element wurde von jQuery.validate mit dem Ausdruck jQuery $(element) umbrochen.

Daher ist element.attr("name") nicht definiert, aber element[0].attr("name") ist gültig.

Ich habe MicrosoftMvcJQueryValidation.js aus dem Futures-Download auf Microsoft's site genommen. `

Ich kann keine andere Version finden - aber ich bin sicher, dass es eine geben muss. Kann jemand helfen?

+0

Können Sie bitte klären, welche Vorschau von ASP.NET MVC 2 Sie verwenden? Es gibt keine "Beta 2", aber es gibt eine Vorschau 2 sowie eine Beta und eine RC. ASP.NET MVC 2 Preview 2 ist auch in Visual Studio 2010 Beta 2 enthalten. Ja, es ist verwirrend! – Eilon

+0

Gut, diese Frage ist jetzt etwas veraltet, da es eine RC gibt. Bitte sehen Sie meine andere Frage http://stackoverflow.com/questions/1934803/how-do-i-use-microsoftmvcvalidation-js-without-hat-to-include-microsoftajax-js was helfen sollte –

+0

oh und ich meinte Vorschau 2 (Nun RC war nicht, als ich diese Frage trotzdem schrieb) –

Antwort

6

Ab dem 17. Dezember 2009 ist die neueste Version von MicrosoftMvcJQueryValidation.js im futures download project verfügbar.

Achten Sie darauf, MicrosoftMvcJQueryValidation.js und NOT the similarly namedMicrosoftMvcValidation.js aufzunehmen.

+1

Ist dieser Code immer noch relevant vs2010 hat als Futures Link geliefert ist tot, wo werde ich diese js-Datei finden? –

+2

Sie finden es entweder im "ASP.NET MVC 2 RTM-Quellcode" oder im "ASP.NET MVC 2-Future", beide unter http://aspnet.codeplex.com/releases/view/41742 –

+0

@tigermain Obwohl VS 2010 ausgeliefert wurde (zum Zeitpunkt des Schreibens dieses Artikels), scheint das, was hier angezeigt wird, immer noch der richtige Ort zu sein, um MicrosoftMvcJQueryValidation.js zu finden. Wenn ich ein neues Projekt in VS für ein MVC 2 (Nicht-Futures) -Projekt oder sogar ein MVC 3 Preview 1-Projekt erstellen, ist diese Datei standardmäßig nicht im Projekt enthalten. Ich gehe davon aus, wenn ich noch MVC-2-Futures habe und ein neues Projekt erstellt habe, wäre es aber da. –