控制器级别的模型绑定器

时间:2015-06-12 11:39:09

标签: c# asp.net-mvc model-binding

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

// 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

感谢。

1 个答案:

答案 0 :(得分:0)

这是你在找什么?

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
    }
}