Я пытаюсь сделать следующее.
Используйте привязку модели по умолчанию для привязки объекта из значений строки запроса.
Если это не удается, я пытаюсь привязать объект из значений файлов cookie.
Однако я использую аннотации данных для этого объекта, и у меня возникают следующие проблемы.
- Если параметры строки запроса отсутствуют, связыватель модели по умолчанию даже не регистрирует никаких ошибок проверки в обязательных полях. Очевидно, он даже не запускает эти валидаторы, если самого свойства нет в коллекции строк запроса. Как я могу изменить это поведение? Я бы хотел, чтобы обязательные поля были ошибками, если их нет в строке запроса.
- Если у меня есть ошибки проверки модели, я хотел бы затем загрузить модель из файла cookie, а затем повторно проверить объект. Я не уверен, как заставить привязку модели проверять объект, который я сам заселил.
Вот что у меня есть на данный момент.
public class MyCarBinder : DefaultModelBinder
{
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
var myCar = base.BindModel(controllerContext, bindingContext);
if (!bindingContext.ModelState.IsValid)
{
myCar = MyCar.LoadFromCookie();
// Not sure what to do to revalidate
}
return myCar;
}
}
Любая помощь о том, как это сделать, будет принята с благодарностью.