У меня есть ненавязчивая настройка проверки на стороне клиента для моей страницы. Сообщения об ошибках возвращаются из нашей базы данных. Для одного из сообщений проверки мне нужно было добавить параметры, чтобы я мог форматировать их с определенными значениями. Это отлично работает на стороне сервера, но я, очевидно, не получил доступ к некоторым из этих значений, когда метод GetClientValidationRules сначала настроен. Из-за этого похоже, что мне придется создавать сообщение об ошибке в моем клиентском коде, но я не знаю, как это сделать, поскольку вы просто возвращаете true или false в jQuery.validator.addMethod.MVC3 и пользовательские сообщения проверки на стороне клиента
Так что я в основном должен быть в состоянии сделать, это установить ErrorMessage в метод string.Empty в GetClientValidationRules, а затем в моем климатическом коде, который выполняет валидацию, сможет вернуть любое сообщение, которое я хочу.
Вот код на стороне клиента быть подключен в MVC 3.
public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
{
var rule = new ModelClientValidationRule
{
ValidationType = "maximumdatecoverrequired",
ErrorMessage = string.Empty,
};
rule.ValidationParameters.Add("maxdate", DateTime.Now.AddDays(Settings.Default.MaximumDateCoverRequiredDaysInFuture).ToString("yyyy/MM/dd"));
return new[] { rule };
}
Вот мой клиентский код для проверки против этого конкретного свойства.
jQuery.validator.addMethod("maximumdatecoverrequired", function (value, element, params) {
var maxDate = new Date(params["maxdate"]);
var day = maxDate.getDate();
var month = maxDate.getMonth() + 1;
var year = maxDate.getFullYear();
var dateCoverRequired = new Date(value).toString('yyyy/MM/dd');
maxDate = maxDate.toString('yyyy/MM/dd');
if (value > maxDate) {
$("input#DateCoverRequired_Day").val(day);
$("select#DateCoverRequired_Month").val(month);
$("input#DateCoverRequired_Year").val(year);
return false;
}
return true;
});
Как вернуть пользовательское сообщение в моем клиентском коде?
Что вы пытаетесь проверить? слишком много деталей отсутствует – gdoron
gdoron - Я обновил свой вопрос тем, чего я пытаюсь выполнить. – doogdeb
@doogdeb, обновите его еще раз и не забудьте включить свой код на этот раз. –