MVC2 Imodelbinder e analisando uma corda em um objeto - como faço isso?
-
25-09-2019 - |
Pergunta
Eu tenho um objeto chamado tempo
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)
}
}
Então, o que eu quero é para a ligação automática do modelo na edição ou criar ação para definir esta instância de tempo a partir de uma string (ou seja, alimente o método parse com a string e retorne o resultado).
A razão pela qual estou fazendo isso é que terei uma lista suspensa com horários selecionáveis. O valor de cada opção será a string legível pelo analisador.
Alguém pode fornecer um exemplo de método BindModel a partir da interface Imodelbinder?
Solução
Ok, eu encontrei o que queria. Videira de modelo por Scott Hanselman Você é uma lenda Scott.
O componente principal estava usando o "bindingContext.modelname" para obter o nome da chave e depois puxar o valor do provedor de valor como assim:
bindingContext.ValueProvider.GetValue(bindingContext.ModelName).AttemptedValue
Claro que essa é uma implementação bastante ingênua, mas isso me iniciou.
Outras dicas
Usando o contexto de ligação, você pode obter um identificador para o ValueProvider ou a própria solicitação e retirar o valor e analisá -lo.