7
我需要实现一个功能,允许用户以任何形式输入价格,即允许10美元,10美元,10美元...作为输入。ASP.NET MVC - 自定义模型绑定器能够处理阵列
我想通过为Price类实现自定义模型联编程序来解决此问题。
class Price { decimal Value; int ID; }
的形式包含一个数组或价格作为键
keys:
"Prices[0].Value"
"Prices[0].ID"
"Prices[1].Value"
"Prices[1].ID"
...
的视图模型包含价格属性:
public List<Price> Prices { get; set; }
默认模型粘合剂很好地工作,只要该用户输入一个十进制可转换字符串到值输入中。 我希望允许像“100美元”这样的输入。
我迄今价格类型ModelBinder的:
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;
}
如何实现正确处理的数组中的自定义模型活页夹?
难道我猜对了那个ID是用户ID和不是ID货币? – AxelEckenberger
这是定价类型的编号,与此问题无关 – Marek
不需要多种货币 - 我们固定为单一货币,但需要允许各种输入格式,如问题 – Marek