余米试图创建一个自定义的模型绑定与下面的代码:如何在自定义模型绑定中获取模型?
public class TransactionModelBinder : IModelBinder
{
public object BindModel(ControllerContext controllerContext,
ModelBindingContext bindingContext)
{
Object Model = bindingContext.Model;
//Do custom logic
return Model;
}
}
在Global.asax中,我米添加:
ModelBinders.Binders.Add(typeof(TransViewModel), new TransactionModelBinder());
问题: 我不知道如何让模型。我试过bindingContext.Model
,但它是空的。 请同时指导我的Global.asax代码行是否正常。
同意。如果你愿意,可以多指点一点,非常感谢。你说的是从模型,我应该修改一个属性和返回属性,而不是完整的模型? 之前我之前尝试过。只需修改一个小数属性。 问题: 不幸的是,在Global.asax中,我已经有一个带有十进制的客户绑定。我试过: ModelBinders.Binders.Add(typeof(decimal),new CurrencyModelBinder()); ModelBinders.Binders.Add(typeof(decimal),new TxTransactionModelBinder()); 但错误“已添加具有相同密钥的项目。“ – Toubi
详情请参阅 http://stackoverflow.com/questions/21717757/cant-add-new-custom-model-binder-error-an-item-with-the-same-key-has-already -b?noredirect = 1#comment32841219_21717757 – Toubi
是否意味着在global.asax中,我可以注册2个相同类型的自定义模型绑定器(在这种情况下,typeof(decimal))?我很欣赏你的方法,但只是想问一下,是不可能的?如果你必须从global.asax执行,你会怎么做? – Toubi