在控制器级别对绑定器进行建模

本文关键字:建模 绑定 控制器 | 更新日期: 2023-09-27 17:56:04

有没有办法实现以下内容:

// Model.cs
[ModelBinder(typeof(DefaultModelBinder))]
public class Model
{
}
public class DefaultModelBinder: IModelBinder
{
}
public class CustomModelBinder: DefaultModelBinder
{
}
// Controller1.cs
public class Controller1: Controller
{
    public virtual ActionResult Method(Model model)
    {
    }
}
// Controller2.cs
[ModelBinder(typeof(Model), typeof(CustomModelBinder))] // imaginary attribute
public class Controller2: Controller
{
    public virtual ActionResult Method(Model model)
    {
    }
}

我知道操作级别的ModelBinder,但是给定一堆操作,它不遵循 DRY 原则,因为整个控制器将使用 CustomModelBinder .

谢谢。

在控制器级别对绑定器进行建模

这是你要找的吗?

using IModelBinder = System.Web.Mvc.IModelBinder;
using ModelBindingContext = System.Web.Mvc.ModelBindingContext;
public class CustomeModelBinder : IModelBinder
{
    public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
    {
        //your code here
    }
}