2012-02-28 1 views
0

У меня есть ModelBinder добавляемого во Application_Start так:Как добавить привязку модели в asp.net mvc из метода, называемого Application_Start?

protected void Application_Start() 
    { 
     XmlConfigurator.Configure(); 

     // Model Binding 
     ModelBinders.Binders.Add(typeof(SessionUser), new SessionUserModelBinder()); 
     //////////////// 

     AreaRegistration.RegisterAllAreas(); 

     RegisterGlobalFilters(GlobalFilters.Filters); 
     RegisterRoutes(RouteTable.Routes); 
    } 

Я хотел бы метод Application_Start назвать отдельный метод, чтобы добавить свою пользовательскую модель связующий в список как:

namespace NewNameSpace 
{ 
    public class TestStartClass 
    { 
     public static void AppStart() 
     { 
      ModelBinders.Binders.Add(typeof(SessionUser), new SessionUserModelBinder()); 
     } 
    } 
} 

проблема в том, что, когда я пытаюсь это, Binder в ModelBinders.Binder возвращает ошибку, которая говорит:

Error 1 'System.Web.Mvc.ModelBinders' does not contain a definition for 'Binder' 

Я using System.Web.Mvc. Что мне не хватает, что мешает этому работать?

+1

Вы используете 'ModelBinders.Binder' (который не существует) вместо' ModelBinders.Binders' где-нибудь? Сообщается вам сообщение об ошибке. – pjumble

ответ

2

Похоже, что у вас должна быть опечатка в коде. В сообщении об ошибке говорится, что вы пытаетесь ссылаться на член класса, например ModelBinders.Binder. Вам нужно, чтобы это было ModelBinders.Binders.Add().

ModelBinders.Binders Property MSDN Reference

1

сообщение об ошибке говорит ModelBinders не имеет Binder свойство, и это правильно. Он имеет свойство Binders (обратите внимание на s).