2009-12-10 11 views
5

MicrosoftMvcJQueryValidation.js viene utilizzato da ASP.NET MVC 2 per la convalida lato client.Dov'è la versione corretta di MicrosoftMvcJQueryValidation.js per MVC 2 beta 2?

Avere problemi con questo file non funziona correttamente e mi chiedo se ho la versione sbagliata.

La versione che sto utilizzando proviene dalla fonte dei futures.

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

Ci sono due motivi penso di avere la versione sbagliata:

1) Io in realtà devo chiamare questo codice per ottenere la routine di convalida funziona affatto. Questo perché la funzione di convalida client predefinita ora incorporata in FormContext.cs è Sys.Mvc.FormValidation.enableClientValidation.

ViewContext.FormContext.ClientValidationFunction = "EnableClientValidation"; 

2) C'è qualche codice da jquery.validate.js che fa la followin:

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

Ciò richiede in questa funzione 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); 
    }, 

Il problema è che l'elemento è stato spostato da jQuery.validate con l'espressione jQuery $(element).

Pertanto, element.attr("name") non è definito, ma element[0].attr("name") è valido.

Ho preso MicrosoftMvcJQueryValidation.js dal download futuri su Microsoft's site. `

Non riesco a trovare nessuna altra versione MicrosoftMvcJQueryValidation - ma sono sicuro che ce ne deve essere una. Qualcuno può aiutare?

+0

Può chiarire quale anteprima di ASP.NET MVC 2 si sta utilizzando? Non c'è "Beta 2" ma c'è un'anteprima 2, una beta e una RC. ASP.NET MVC 2 Preview 2 è incluso anche in Visual Studio 2010 Beta 2. Sì, è confuso! – Eilon

+0

OK, questa domanda è un po 'obsoleta ora che c'è un RC. per favore vedi la mia altra domanda http://stackoverflow.com/questions/1934803/how-do-i-use-microsoftmvcvalidation-js-without-having-to-include-microsoftajax-js che dovrebbe aiutare –

+0

oh e volevo dire Anteprima 2 (bene RC non era uscito quando ho scritto questa domanda comunque) –

risposta

6

A partire dal 17 dicembre 2009 l'ultima versione di MicrosoftMvcJQueryValidation.js è disponibile in futures download project.

Fare attenzione a includere MicrosoftMvcJQueryValidation.js e NOT the similarly namedMicrosoftMvcValidation.js.

+1

Questo codice è ancora rilevante ora vs2010 è stato spedito come il collegamento dei futures è morto, dove trovo questo file js? –

+2

È possibile trovarlo nel "Codice sorgente RTM ASP.NET MVC 2" o nel "Futuro ASP.NET MVC 2", entrambi disponibili all'indirizzo: http://aspnet.codeplex.com/releases/view/41742 –

+0

@tigermain Anche se VS 2010 è stato spedito (per un po 'al momento della stesura di questo documento), ciò che è indicato qui sembra essere ancora il posto giusto per trovare MicrosoftMvcJQueryValidation.js. Se creo un nuovo progetto in VS per un progetto MVC 2 (non-futures) o anche un progetto Preview 3 MVC 3, questo file non è nel progetto per impostazione predefinita. Suppongo che se ancora avessi un futuro su MVC 2 e avessi creato un nuovo progetto, sarebbe comunque lì. –

Problemi correlati