MVC2 IModelBinder и анализ строки для объекта - Как мне это сделать? - PullRequest
1 голос
/ 03 февраля 2010

У меня есть объект под названием Time

public class Time{
   public int Hour  {get;set;}
   public int Minute {get;set;}     

   public static Time Parse(string timeString){
   //reads the ToString()'s previous output and returns a Time object
   }

   override protected string ToString(){
   //puts out something like 14:50 (as in 2:50PM)
   }
}

Итак, я хочу, чтобы автоматическое связывание модели в действии Edit или Create устанавливало этот экземпляр Time из строки (т.е. передавал методу Parse строку и возвращал результат).

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

Может ли кто-нибудь предоставить пример метода BindModel из интерфейса IModelBinder?

Ответы [ 2 ]

3 голосов
/ 03 февраля 2010

ОК, я нашел то, что хотел. Связывание моделей Скоттом Хансельманом Вы - легенда Скотта.

Компонент ключа использовал «bindingContext.ModelName», чтобы получить имя ключа, а затем получить значение из поставщика значений следующим образом:

bindingContext.ValueProvider.GetValue(bindingContext.ModelName).AttemptedValue

Конечно, это довольно наивная реализация, но она заставила меня начать.

0 голосов
/ 03 февраля 2010

Используя контекст привязки, вы можете получить дескриптор ValueProvider или самого запроса и извлечь значение и проанализировать его.

...