2009-12-10 2 views
5

MicrosoftMvcJQueryValidation.js используется ASP.NET MVC 2 для проверки на стороне клиента.Где находится правильная версия MicrosoftMvcJQueryValidation.js для MVC 2 beta 2?

Проблемы с этим файлом просто не работают должным образом и задаются вопросом, есть ли у меня неправильная версия.

Версия, которую я использую, исходила из источника для фьючерсов.

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

Есть две причины, я думаю, у меня есть неправильная версия:

1) Я на самом деле необходимо вызвать этот код, чтобы получить процедуру проверки, работающую на всех. Это связано с тем, что функция проверки клиента по умолчанию, встроенная в настоящее время в FormContext.cs, составляет Sys.Mvc.FormValidation.enableClientValidation.

ViewContext.FormContext.ClientValidationFunction = "EnableClientValidation"; 

2) Существует некоторый код из jquery.validate.js который делает followin:

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

Это вызывает в эту функцию в 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); 
    }, 

Проблема заключается в том, что элемент был обернут jQuery.validate с выражением jQuery $(element).

Поэтому element.attr("name") не определено, но element[0].attr("name") действительно.

Я принял MicrosoftMvcJQueryValidation.js с фьючерсов скачать на Microsoft's site. `

Я не могу найти другую версию MicrosoftMvcJQueryValidation, но я уверен, что она должна быть такой. Может ли кто-нибудь помочь?

+0

Не могли бы вы уточнить, какой предварительный просмотр ASP.NET MVC 2 вы используете? Нет «Beta 2», но есть Preview 2, а также Beta и RC. ASP.NET MVC 2 Preview 2 также включен в бета-версию Visual Studio 2010 2. Да, это сбивает с толку! – Eilon

+0

ОК, этот вопрос несколько устарел, теперь есть RC. см. мой другой вопрос http://stackoverflow.com/questions/1934803/how-do-i-use-microsoftmvcvalidation-js-without-having-to-include-microsoftajax-js, который должен помочь –

+0

. О, и я имел в виду Preview 2 (ну RC не был, когда я написал этот вопрос в любом случае) –

ответ

6

По состоянию на 17 декабря 2009 года последняя версия MicrosoftMvcJQueryValidation.js доступна в futures download project.

Будьте осторожны, чтобы включить MicrosoftMvcJQueryValidation.js и NOT the similarly namedMicrosoftMvcValidation.js.

+1

Этот код по-прежнему уместен сейчас vs2010 отправлен, поскольку фьючерсная связь мертва, где я найду этот файл js? –

+2

Вы можете найти его в «исходном коде RTM ASP.NET MVC 2» или в «ASP.NET MVC 2 Future», оба доступны по адресу: http://aspnet.codeplex.com/releases/view/41742 –

+0

@tigermain Несмотря на то, что VS 2010 отправлен (на некоторое время на момент написания этой статьи), то, что указано здесь, по-видимому, является подходящим местом для поиска MicrosoftMvcJQueryValidation.js. Если я создаю новый проект в VS для проекта MVC 2 (не фьючерсы) или даже проекта MVC 3 Preview 1, этот файл по умолчанию не находится в проекте. Я предполагаю, что если я все еще MVC 2 фьючерсы и создаю новый проект, он будет там. –