自定义模型绑定器MVC的参数

时间:2015-08-17 19:47:56

标签: asp.net-mvc asp.net-mvc-5

对于下面的代码,我想知道Employee类型如何通过前缀[]括号

进行影响
public ActionResult SaveEmployee([ModelBinder(typeof(MyEmployeeModelBinder))]Employee e, string BtnSubmit)
{
        // some logic
}

1 个答案:

答案 0 :(得分:3)

MyEmployeeModelBinder是一个自定义模型绑定器,它将在Employee e中执行而不是默认模型绑定器。

public class MyEmployeeModelBinder: DefaultModelBinder
{
    public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) {
    ...
    }
}

员工类型会影响bindingContext中的BindModel()个属性,例如bindingContext.ModelMetadatabindingContext.ModelType,其中包含有关模型的信息。看一下ModelMetaData:https://msdn.microsoft.com/pt-br/library/system.web.mvc.modelmetadata%28v=vs.108%29