web 2.0

Как удалить сообщение валидации "The field must be a number"

 

При использовании валидации полей на стороне клиента, появляются некоторые сообщения на английском языке. Например:

The field must be a number

Это сообщение не так просто удаляется. Поскольку разработчики майкрософта включили это в MVC в самый последний момент, они уже не позаботились о жителях других странах и национальностях, чтобы им было удобно читать подобное сообщение на своём языке.

В результате эксперты предлагают разные решения:

  • Не использовать валидацию на стороне клиента
  • Не использовать ClientDataTypeModelValidatorProvider
  • Заменить ClientDataTypeModelValidatorProvider на свой провайдер

 

В поисках самого решения, я нашёл самый оптимальный выход, который подходит моим требованиям. В этом решении используется валидация javascript на стороне клиента, и не отображается несчастное сообщение на английском языке “The field must be a number”.

Итак делаем следующее:

В моделе пишем настройки валидации:

public class Product
{
[Range(100, 1000)]
public int QuantityInStock { get; set; }
  public decimal Cost { get; set; }
}

На стороне контроллера, добавляем следующий код, удаляющий валидацию типов на стороне клиента:

 

// Удаляем Провайдр валидации типов со стороны клиента, чтобы не появлялось сообщение на англ.
// The field xxxx must be a number
foreach (ModelValidatorProvider prov in ModelValidatorProviders.Providers)
{
	if (prov.GetType().Equals(typeof(ClientDataTypeModelValidatorProvider)))
	{
		ModelValidatorProviders.Providers.Remove(prov);
		break;
	}
}

 

Другой простой способ, который может помочь - это RegularExpression, например:

RegularExpression("\\d{12}", ErrorMessage = "Пожалуйста вводите не более 12 цифр в поле телефона")]

Можно также и добавить собственный провайдер для валидации типов данных на стороне клиента. Подробнее об этом на английском языке можно найти информацию здесь:

http://jwwishart.wordpress.com/2010/03/22/custom-server-and-client-side-required-validator-in-mvc-2-using-jquery-validate/

 

Tags: , ,

Blog

Ошибка при переходе на ASP.NET 4.0 как лечить?

При переходи на новую версию ASP.NET 4.0 могут возникнуть некоторые проблемы: не открывается сайт, или возникает ошибка 403 или 404.

прежде всего выплните следующую команду:

aspnet_regiis -i

в папке C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319 Уточните эти цифры, они меняются от версии к версии.

это установит ASP.NET 4.0 подробнее об этом читайте здесь: http://msdn.microsoft.com/ru-ru/library/k6h9cz8h.aspx

  1. Откройте диспетчер IIS, разверните ветвь локального компьютера, щелкнув значок "плюс", и перейдите к папке, которая содержит приложение ASP.NET
  2. Щелкните папку правой кнопкой мыши и выберите команду Свойства. Откроется диалоговое окно Свойства приложения.
  3. На вкладке Каталог нажмите кнопку Настройка. Откроется диалоговое окно Настройка приложения.
  4. На вкладке Сопоставления выберите расширение приложения ASP.NET, такое как .asmx или .aspx.
  5. Здесь мы добавим новый тип: .* как указано ниже. Не забывайте убрать галочку "Проверять наличие файла"

настройки aspnet 4.0 iis добавление файла

настройки aspnet 4.0 iis добавление файла

 Удачи.

Tags: ,

Blog