为什么我不能在global.asax文件夹中添加自定义模型绑定器?

Mic*_*ren 8 c# asp.net-mvc global-asax custom-model-binder

我看到人们设置他们的自定义模型绑定器的例子,如下所示:

// global.asax
protected void Application_Start()
{
    ModelBinders.Binders.Add(typeof(YourModel), new YourBinder());
}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试它时,它不会编译(.Binders找不到).是什么赋予了?

Mic*_*ren 13

事实证明,这只是一个命名冲突,因为我将自定义模型绑定器放在名为"ModelBinders" 的文件夹/命名空间中.您可以通过以下两种方式解决此问题:

  1. 将命名空间/文件夹重命名为其他内容,例如 CustomModelBinders
  2. 使用这样的完全限定引用ModelBinders:

    System.Web.Mvc.ModelBinders.Binders.Add( /* ... */ );