У меня есть приложение asp.net mvc 3, и сейчас я пытаюсь добавить к нему некоторую проверку. Я тестирую с чистым решением. Я не хочу, чтобы проверка выполнялась на стороне клиента (пока), поэтому я отключил это в Web.config:
<add key="ClientValidationEnabled" value="false"/>
У меня есть простой класс, который реализует IValidatableObject, и я хочу использовать функцию проверки для проверки (не атрибуты).
public class SomeClass : IValidatableObject
{
public int Id { get; set; }
public int LowNumber { get; set; }
public int HighNumber { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (LowNumber > HighNumber)
{
yield return new ValidationResult("LowNumber should not be higher than HighNumber.");
}
}
}
Теперь к вопросу. Применяется ли проверка на стороне сервера автоматически и как? Как мне это отключить? Я хочу контролировать это сам, говоря что-то подобное в своем посте:
[HttpPost]
public string SomeAction(SomeClass model)
{
if (TryValidateModel(model))
return "All good";
else
return "No good";
}
При этом проверка вызывается и отображается дважды. Один раз за этот звонок и один раз от кого-то еще. Кто?