Necesito implementar una funcionalidad para permitir a los usuarios introducir el precio en cualquier forma, es decir, para permitir 10 USD, 10 $, $ 10, ... como entrada.ASP.NET MVC - Carpeta de modelo personalizado capaz de procesar matrices
Me gustaría solucionar esto implementando un encuadernador de modelo personalizado para la clase de precio.
class Price { decimal Value; int ID; }
el formulario contiene una matriz o precios como teclas
keys:
"Prices[0].Value"
"Prices[0].ID"
"Prices[1].Value"
"Prices[1].ID"
...
El ViewModel contiene un precios de la propiedad:
public List<Price> Prices { get; set; }
El aglutinante modelo por defecto funciona muy bien, siempre y cuando el usuario introduce una cadena decimal convertible en la entrada de Valor. Me gustaría permitir entradas como "100 USD".
Mi ModelBinder para el tipo de precio hasta el momento:
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;
}
¿Cómo se implementa un modelo de Cuaderno personalizado que controla las matrices correctamente?
hacer yo adivinar correctamente que la ID es el ID de usuario y no el ID de ¿la moneda? – AxelEckenberger
Ese es el ID del tipo de precio, no relevante para esta pregunta – Marek
No hay necesidad de varias monedas: estamos fijos en una sola moneda pero necesitamos permitir varios tipos de formatos de entrada como se menciona en la pregunta – Marek