Tag: 自定义模型

属性的自定义模型绑定器

我有以下控制器操作: [HttpPost] public ViewResult DoSomething(MyModel model) { // do something return View(); } MyModel如下: public class MyModel { public string PropertyA {get; set;} public IList PropertyB {get; set;} } 所以DefaultModelBinder应该没有问题地绑定它。 唯一的事情是我想使用特殊/自定义绑定器来绑定PropertyB ,我也想重用这个绑定器。 所以我认为解决方案是在PropertyB之前放置一个ModelBinder属性,这当然不起作用(属性上不允许使用ModelBinder属性)。 我看到两个解决方案: 要在每个属性上使用动作参数而不是整个模型(我不喜欢,因为模型有很多属性),如下所示: public ViewResult DoSomething(string propertyA, [ModelBinder(typeof(MyModelBinder))] propertyB) 要创建一个新类型,可以说MyCustomType: List并注册此类型的模型绑定器(这是一个选项) 也许为MyModel创建一个绑定器,重写BindProperty ,如果属性为”PropertyB”则使用我的自定义绑定器绑定该属性。 这可能吗? 还有其他解决方案吗?