Ho bisogno di implementare una funzionalità per consentire agli utenti di inserire il prezzo in qualsiasi forma, cioè di consentire 10 USD, 10 $, $ 10, ... come input.ASP.NET MVC - Raccoglitore modello personalizzato in grado di elaborare array
Vorrei risolvere questo problema implementando un raccoglitore modello personalizzato per classe Price.
class Price { decimal Value; int ID; }
Il modulo contiene una matrice o prezzi come tasti
keys:
"Prices[0].Value"
"Prices[0].ID"
"Prices[1].Value"
"Prices[1].ID"
...
viewmodel contiene una proprietà prezzi:
public List<Price> Prices { get; set; }
Il legante modello predefinito funziona bene fintanto che l'utente inserisce un stringa decimale convertibile nell'input del valore. Vorrei inserire input come "100 USD".
mio ModelBinder per Tipo prezzo finora:
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
Price res = new Price();
var form = controllerContext.HttpContext.Request.Form;
string valueInput = ["Prices[0].Value"]; //how to determine which index I am processing?
res.Value = ParseInput(valueInput)
return res;
}
Come faccio a implementare un Raccoglitore modello personalizzato che gestisce correttamente gli array?
faccio a indovinare che ID è l'ID utente e non l'ID del la moneta? – AxelEckenberger
Questo è l'ID del tipo di prezzo, non rilevante per questa domanda – Marek
Non c'è bisogno di più valute - siamo fissati a una singola valuta ma dobbiamo consentire vari tipi di formati di input come menzionato nella domanda – Marek